【问题标题】:State data not being updated react native [duplicate]未更新的状态数据反应本机[重复]
【发布时间】:2018-08-09 17:15:02
【问题描述】:

我有一个FlatList,它的代码如下:sn-p

            <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】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多