未更新的状态数据反应原生[重复]

问题描述 投票:1回答:1

我有一个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();
                }}
              ...........
            />

问题是即使我在状态中更新刷新变量值,该值也不会在我上面打印的调试语句中更新,也不会在_fetchArticles函数中显示刷新变量的最新状态值。我不确定我是否做错了或者如果setState是异步调用,如果是这样我如何处理获取新数据,因为我应该维护一个非状态变量,因为它会立即刷新。

javascript android reactjs react-native
1个回答
0
投票

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

this.setState({
    refresh: true
}, () => {
    console.log("DEBUG refresh call state=" + this.state.refresh);
});
© www.soinside.com 2019 - 2024. All rights reserved.