使用Redux存储更新FlatList的最佳方法

时间:2017-10-03 20:26:58

标签: react-native redux

我有一个带有嵌套对象的Redux商店:Part of the Redux store

我使用数组的第一个元素作为FlatList的数据,因为我不想一次显示所有项目。

但是如果我想添加数组的第二个元素并更新列表。什么是最好的解决方案?

1 个答案:

答案 0 :(得分:4)

data值设置为州道具,您可以使用onEndReachedThreshold设置您想要触发onEndReached的底部的滚动距离。然后调用您的函数加载更多项onEndReached,然后更新您的FlatList。

它看起来像这样:

<FlatList
  data={this.state.listDataSource}
  renderItem={({ item, index }) => this.renderListItem(item, index)}
  keyExtractor={this._keyExtractor} // dont'forget to declare _keyExtractor
  onEndReachedThreshold={0.5} //when scroll reach half distance from bottom. Min value 0, max 1.
  onEndReached={() => this.loadMoreItems()} // this.setState({ listDataSource: newList }), for instance
/>

在上面的例子中,每当滚动到达列表的一半时,它将触发onEndReached功能。

如果您不想使用组件状态,您还可以触发操作(this.props.loadMoreItems()),更新您的reducer并将其值用作datathis.props.listDataSource )。

您可以在官方文档中找到更多详细信息:https://facebook.github.io/react-native/docs/flatlist.html

希望它有所帮助。