未更新的状态数据反应原生

时间:2018-03-01 15:26:48

标签: javascript android reactjs react-native

我有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是异步调用,如果是这样我如何处理获取新数据,因为我应该维护一个非状态变量,因为它会立即刷新。

1 个答案:

答案 0 :(得分:0)

setState回调将在设置状态后执行日志语句,因为状态未立即设置且确实是异步操作。

this.setState({
    refresh: true
}, () => {
    console.log("DEBUG refresh call state=" + this.state.refresh);
});