FlatList呈现许多posts
个数据。
Each item
中的posts
包含赞数据和已添加书签的数据。 (无论用户喜欢还是书签)
我的问题是我们如何将每个项目的许多数据存储到州?
这是FlatList。 (没什么特别的)
<FlatList
data={posts}
renderItem={this._renderItem}
keyExtractor={this._keyExtractor}
numColumns={1}
/>
来自renderItem的每个Item,都有_handleLikePress按钮来改变liked
状态。
_handleLikePress = (itemId) => {
let { token } = this.props;
this.setState({liked: true}) <<<<<--- HERE!
this.props.likeOutfit(token, itemId)
}
!开发点:我认为“赞”功能在服务器端工作 100%所以我设置state
而不是redux'道具。
那么我们如何处理多个项目的状态?
答案 0 :(得分:1)
在这个方法上this._renderItem为每个项目创建一个新组件并更新每个项目自己的状态
<FlatList
data={posts}
renderItem={this._renderItem}
keyExtractor={this._keyExtractor}
numColumns={1}
/>
renderItem(){
return <ItemList {..props} />
}
在ItemList组件中,维护状态
class ItemList extends React.Component {
constructor(){
this.state = {
liked:false
}
}
render () {
return(
)
}
}
export default ItemList;