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

时间:2017-12-02 07:01:34

标签: reactjs react-native

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'道具。

那么我们如何处理多个项目的状态?

1 个答案:

答案 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;