[英]Extract fetched data using map method
我正在尝试从 newsapi 网站获取数据。 它给我数据作为数组,如 object 格式。
现在,我的目标是迭代此数据并显示我的 newsItem 组件。 下面是我的代码。
export class News extends Component {
constructor(){
super()
this.state = {
articles: this.articles
}
}
componentDidMount(){
fetch(`https://newsapi.org/v2/top-headlines?country=us&apiKey=d21fe13361b94006b816f98a7c005003`)
.then(res =>res.json())
.then(data => this.setState({articles:data.articles}))
}
render() {
return <div className='container my-3'>
<h1 className='my-3'>NewsDonkey - Top Headlines</h1>
<div className="row">
{this.state.articles.map(element=> console.log(element))}
<div className="col-md-4">
<NewsItem/>
</div>
</div>
</div>;
}
}
export default News;
现在,您可能会说数据可能采用 object 格式,这就是 map 方法不起作用的原因。 我在 JS 中尝试了相同的编码:articles.map(element=> console.log(element)) 它完美地提取了数据。 如果您在我的编码中发现任何错误,请帮助我。
this.articles
state.articles
它是undefined
。
在将来的某个时候,您将为该属性分配一个有用的值,但在那之前您不能将其视为未来的数组,但现在还没有。
测试值并做一些不同的事情。
例如
(!this.state.articles && <Loading />}
{this.state.articles && this.state.articles.map(element=> console.log(element))}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.