【发布时间】:2019-03-04 20:24:12
【问题描述】:
我正在开发一个新闻应用程序,我在其中调用 API 并显示热门新闻的卡片。(图 1)
<div style={{display: 'flex', flexWrap: 'wrap', padding: 20, alignItems: 'center', justifyContent: 'center' }}>
{this.state.news.map(news => (
<NewsCard
key={news.url}
_id={news.url}
description={news.description}
image={news.urlToImage}
source={news.source.name}
title={news.title}
summary={this.state.summary}
onExpand={this.handleDetailClick.bind(this, news.url)}
onSave={this.handleDetailClick.bind(this, news.url)}
/>
))}
</div>
在扩展卡片时,它会在调用第二个 API 后显示文章的要点。(图 2)
handleDetailClick = link => {
// console.log('hadle detail', link);
API.summarize(link)
.then((res) => {
// console.log(res.body);
this.setState({
summary: res.body
})
// console.log(this.state.summary);
})
}
但是我被困在这个问题上,因此在第二张卡上调用要点 API 时,第一张卡会获取第二张卡的要点。如何防止这种情况发生?(图 3)
到目前为止,我已经尝试使用 componentDidUpdate 生命周期方法来比较状态并保持第一张卡的状态持久,但我无法弄清楚这一点。
任何指针?
【问题讨论】:
-
能否包含相关代码?
-
添加了一些代码
标签: reactjs react-hooks