【发布时间】:2020-11-09 14:32:42
【问题描述】:
我知道 extraData 用于在 flatlist 更改时更新它,但不知何故它在我的情况下不起作用。我知道我做错了什么,但我需要建议来解决这个问题。 这是我的平面列表:
<FlatList
data={this.state.data}
extraData={this.state.data}
renderItem={this.renderPost}
keyExtractor={(item, index) => index.toString()}
onEndReached={this.loadMorePosts}
onEndReachedThreshold={0.5}
ListFooterComponent={this.renderFooter}
showsVerticalScrollIndicator={false}
refreshControl={
<RefreshControl
refreshing={this.state.loading}
onRefresh={this.loadNewerPosts}
/>
}
/>
这是我的 deleteRequest,应该从 this.state.data 中删除一项:
deletePost = (index) => {
console.log(this.state.data.length);
let data = this.state.data;
data.splice(index, 1);
this.setState({ data: data }, () => {
console.log(this.state.data.length);
});
};
我什至尝试将刷新设置为状态,并在每次删除项目并将其设置为 extraData 时更改它,但没有任何反应。我究竟做错了什么? This.state.data.length 正在发生变化,因此数据会发生变化,但 flatList 不会重新渲染。
【问题讨论】:
-
如果满足您的需求,您可以尝试实现“拉动刷新”功能。
标签: javascript react-native react-native-flatlist