我正在使用react-native-background-fetch
来接收应用刷新事件,并且在触发时一直在努力调度一个动作(获取数据)。我能够在redux之外做到这一点,但是当我发送动作时却没有。
BackgroundFetch.configure({
stopOnTerminate: false
}, async () => {
await store.dispatch(getItemsAction);
BackgroundFetch.finish();
});
动作:
export function getItemsAction() {
// <-- Reaches here
return async (dispatch, getState) => {
// <-- But not here
const items = await findAll();
dispatch(itemsRetrieved(items));
}
}
如果不是解决方案,我想了解一下这里发生的事情。
答案 0 :(得分:0)
首先,您需要调用动作创建者
await store.dispatch(getItemsAction());
然后,您需要一个中间件来处理函数作为操作。我假设你知道redux-thunk
。
答案 1 :(得分:0)
如果这是一项在后台运行的无头任务,则它无法从我的经验中访问redux存储。
当您以无头js方式运行任务时,您将要使用类似AsyncStorage(https://github.com/react-native-community/async-storage)的东西,这是在应用程序运行后台事件时发生的事情。