将 reducer 重新水化为 null 的 Redux 离线问题

Redux Offline issue with rehydrating reducer to null

我正在使用 redux-offline,下面是我创建商店的方式


let customConfig = {
    ...offlineConfig,
    persistOptions:{
        key: 'root',
        transforms: [immutableTransform()],
    },
    returnPromises : false,
    persistCallback : () => {this.setState({rehydrated : true})}
};

const { middleware, enhanceReducer, enhanceStore } = createOffline(customConfig);
let middlewares = applyMiddleware(offlineCommitHandler,thunk,middleware,);
store = createStore(enhanceReducer(IndexReducer),undefined,compose(enhanceStore,middlewares,persistAutoRehydrate({log:true})));

我有多个减速器。

该问题仅在对一个还原剂进行再水化时出现,例如:还原剂 A

我在 autoRehydrate 中放置了一个调试器

我从未进行过离线配置,但我 运行 遇到过与 redux-persist 类似的问题。 所以首先你要确保你的调试器和你的 device/emulator 没有及时漂移。这会一直给我带来问题,只需重新启动模拟器和我用于调试的 chrome 选项卡即可解决问题。 其次,您想检查您的减速器是否没有任何错误。在我的例子中,我没有遵循不变性模式,这有时会导致 redux 不保留我的状态,因为它看不到旧状态和新状态之间的任何区别。

对于正在寻找类似问题答案的任何人。

我的问题是我尝试存储的数据达到了 asyncStorage 的最大存储限制。

https://github.com/rt2zz/redux-persist/issues/199

我不得不转而使用 filestorage 而不是 asyncStorage 来让 redux 持久存储数据