如何在setTimeout()中使用组件的上下文?

时间:2019-09-25 08:34:30

标签: reactjs react-native

我正在<clause>应用中实现<test>。一切正常,数据获取和更新。

我面临的问题是,大多数视图在获取初始数据后需要2秒钟来更新。因此,在加载其他视图的数据之前,将隐藏刷新微调器。为了修补此错误,我试图在设置RefreshControl之前添加延迟。

问题:如何在ReactNative中获得主要组件的refreshing: false

context

1 个答案:

答案 0 :(得分:2)

插入

var localThis=this;

在this.fetchData()行之前。然后...

并使用 localThis 代替 this

localThis.setState({ refreshing: false });



onRefresh = () => {
    this.setState({ refreshing: true }); // <--- **this** here is Main Component.
    var localThis=this;
    this.fetchData().then(() => {
        setTimeout(function () {
            localThis.setState({ refreshing: false }); // <--- Here getting error like "this.setState" is undefined.
        }, 2000);
    });
}