【发布时间】:2023-03-23 23:40:01
【问题描述】:
这是我第一次使用 ReactJS 处理 API。我非常了解 reactjs 的基础知识,但我无法阅读回复。我收到了来自 youtube api 的 json 响应。
最初我得到了
TypeError: items.map 不是函数。
但后来我意识到我可能得到的是一个对象而不是一个数组。我通过items: json.statistics 解决了这个问题。但现在我遇到了其他错误,即
类型错误:项目未定义
我只想获取 3 个信息,即 viewCount、subscriberCount 和 videoCount。我已经写了这段代码
import React, {Component} from 'react';
import './App.css';
class App extends Component {
constructor(props) {
super(props);
this.state = {
items: [],
isLoaded: false
}
}
componentDidMount() {
fetch('https://www.googleapis.com/youtube/v3/channels?part=statistics&id=UCOYqNBjmWF8j-PzI7ZPjt_w&key=AIzaSyAMeZQW6sUQgLdDTnMVeokfbcFcT2A9SuA')
.then(res => res.json())
.then(json => {
this.setState({
isLoaded: true,
items: json.statistics
})
});
}
render() {
var {isLoaded, items} = this.state;
if(!isLoaded) {
return (<div>Loading...</div>)
}
else {
return (
<div>
<ul>
{
items.map(item => (
<li key={item.id}>
Total views: {item.viewCount}
Total subscribers: {item.subscriberCount}
Total videos: {item.videoCount}
</li>
))}
</ul>
</div>
)
}
}
}
export default App;
【问题讨论】:
-
请澄清您遇到的“其他错误”是什么,以便社区可以提供帮助
-
好的。编辑了那部分。请帮忙。
-
你试过
json.items.statistics吗? -
items 是一个数组,使用索引访问它
-
@caladeve。是的。
myitems: json.items.statistics。但我仍然收到那个错误。我什至更改了我的变量的名称,使其与 json 响应的任何其他变量不一致。