我有一个计划的函数,它每隔X分钟从服务器获取数据,我希望它使用响应来更新状态:

api.fetchData().then(
    (response) => {
        dispatch(Actions.updateConfiguration(response));
    }
};

此函数不应作为任何 react 组件,因为它不会呈现任何内容。

但是我似乎无法弄清楚如何在不使用dispatch的情况下注入(inject)connect函数,这要求它是一个react组件。

谢谢。

最佳答案

我们有类似的事情(对auth token 是否仍然有效的定期检查),我们执行了以下操作。

在我们的小“util”函数中,我们将redux存储作为参数接收

export function startSessionTimer(store) {
    const intervalId = setInterval(() => {
        if ( ... ) {
            store.dispatch( ... );
            clearInterval(intervalId);
        }
    }, (15 * 60 * 1000));
}

然后,在我们设置应用程序和创建商店的地方,我们还启动了计时器。
const store = configureStore( ... );
startSessionTimer(store);

10-08 08:45