Я работаю над новостным приложением, в котором я вызываю 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);
})
}
Однако я застрял в этой проблеме, после чего при вызове gist API на второй карте первая карта получает суть второй карты. Как этого избежать? (рисунок 3)
До сих пор я пытался использовать метод жизненного цикла componentDidUpdate для сравнения состояний и сохранения постоянного состояния для первой карты, но я не могу понять это.
Любые указатели?