私は複数のカードをレンダリングしようとしています。各カードは各ニュースに対応しています。しかし、タイトルに記載されているエラーがあります。Reactがカードをレンダリングしようとしたときに問題が発生しました。
export default class NewsCard extends Component{
newsService = new NewsService()
state = {
newsList: null,
}
componentDidMount() {
this.newsService.getByCategory('Belarus').then((newsList) => {
console.log('News: ',newsList);
this.setState({
newsList
})
})
}
renderItems(arr: any){
return arr.map((article: any) => {
console.log(article)
return (
<div className="card col-sm-12 col-md-6 col-lg-3">
<img src={article.urlToImage} alt="icon" />
<div className="info">
<p><a href={article.url}>{article.title}</a></p>
<p>{article.description}</p>
</div>
</div>
)
})
}
render() {
const { newsList } = this.state
if(!newsList) {
return <Loader />
}
const items = this.renderItems(newsList)
return ({items})
}
}
また、ここでは、何が起きているのかを理解するのに役立つかもしれないNewsServiceのコードを追加しています。
async getByCategory(category: string) {
const news = await this.newsapi.v2.topHeadlines({
q: category,
sortBy: 'popularity'
})
return await news.articles
}
問題はこれにあります:
return ({items})
中括弧を使用してオブジェクトを作成しているため、特定のエラーが発生します。あなたのコードが実際にやっていることはこれです:
return { items: items }
これはオブジェクトであり、reactはオブジェクトのレンダリング方法を知りません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加