我有一个带有嵌套对象的Redux商店:Part of the Redux store
我使用数组的第一个元素作为FlatList的数据,因为我不想一次显示所有项目。
但是如果我想添加数组的第二个元素并更新列表。什么是最好的解决方案?
答案 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并将其值用作data
(this.props.listDataSource
)。
您可以在官方文档中找到更多详细信息:https://facebook.github.io/react-native/docs/flatlist.html
希望它有所帮助。