我正在创建一个React-Native应用,该应用从API提取数据作为后台服务。
如果可以使用后台任务期间获取的数据手动为商店补水,但我什么也没找到。
是否有可能从后台“服务”任务中为应用程序被杀死时的redux-persist商店手动补水?
答案 0 :(得分:0)
对于仍在怀疑的人们,如果可以使用react-native-background-fetch来调度ANY任务,那么只要它不触及UI,就可以了。 (AsyncStorage,Redux-Persist,Realm,DB ...)与在UI中调用更改没有直接关系,因此完全可以使用。
在我的特定情况下,我使用最慢的选项-AsyncStorage-持久保存我在全局App级别上使用的props对象,并将派生的数据传递到我的组件上。
// Example of HeadlessTask implementation
import BackgroundFetch from 'react-native-background-fetch'
import AsyncStorage from '@react-native-community/async-storage';
const HeadlessTask = async () => {
// Prepare data - fetching from API, other transformations...
let propsObject = {};
AsyncStorage.setItem(ITEM_KEY, JSON.strigify(propsObject))
.then(() => {
console.log('[AsyncStorage] Object Saved!');
// For iOS specifically we need to tell when the service job
// is done.
BackgroundFetch.finish();
})
.catch((e) => {
console.log('[AsyncStorage] Error saving object: ', e);
BackgroundFetch.finish();
});
}
P.S。请参阅https://github.com/transistorsoft/react-native-background-fetch,以了解如何安装和实现后台提取。