我有FlatList
,其中包含以下代码段
<FlatList
...........
refreshing={this.state.refresh}
onRefresh={() => {
this.setState({
refresh: true
});
console.log("DEBUG refresh call state=" + this.state.refresh);
this._fetchArticles();
}}
onEndReached={() => {
console.log("DEBUG end reached make a network call");
this.setState({
refresh: false,
showLoadingBottom: true
});
this._fetchArticles();
}}
...........
/>
问题是即使我在状态中更新刷新变量值,该值也不会在我上面打印的调试语句中更新,也不会在{{1}中显示刷新变量的最新状态值功能。我不确定我是否做错了或者如果setState是异步调用,如果是这样我如何处理获取新数据,因为我应该维护一个非状态变量,因为它会立即刷新。
答案 0 :(得分:0)
setState回调将在设置状态后执行日志语句,因为状态未立即设置且确实是异步操作。
this.setState({
refresh: true
}, () => {
console.log("DEBUG refresh call state=" + this.state.refresh);
});