flatList呈现许多posts
数据。 posts
中的
Each item
具有喜欢的数据和书签数据。(无论用户是否喜欢它或为其书签)
我的问题是我们如何存储每个项目到州的许多数据?
这里是lantlist。(没什么特别的)
<FlatList
data={posts}
renderItem={this._renderItem}
keyExtractor={this._keyExtractor}
numColumns={1}
/>
RenderItem中的每个项目,都有_handlelikePress按钮可以更改liked
状态。
_handleLikePress = (itemId) => {
let { token } = this.props;
this.setState({liked: true}) <<<<<--- HERE!
this.props.likeOutfit(token, itemId)
}
!开发点:我假设服务器端上的"喜欢"功能 100%,因此我设置了state
而不是Redux'Props。
那么我们如何处理多个项目的状态?
在此方法上this._renderitem为每个项目创建一个新组件,并更新每个项目自己的状态
<FlatList
data={posts}
renderItem={this._renderItem}
keyExtractor={this._keyExtractor}
numColumns={1}
/>
renderItem(){
return <ItemList {..props} />
}
在项目列表组件中,维护状态
class ItemList extends React.Component {
constructor(){
this.state = {
liked:false
}
}
render () {
return(
)
}
}
export default ItemList;