如何处理来自 FlastList 的多个项目的状态(如何从数组中设置多个项目的状态?



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;

相关内容

  • 没有找到相关文章

最新更新