我目前正在使用 Redux Persist
来保持我的Redux状态为React Native . 目前正在使用AsyncStorage . 问题是我需要为我的Redux Reducer设置 initialState
,否则我会收到错误 .
当应用程序启动时,我得到的是 initialState
,而不是获取我登录的持久数据 .
不知何故,在手动导航到连接到商店的另一个页面后,我得到了我的持久数据 .
所以我只是以某种方式阻止了我的持久化数据 . 如果我删除 initialState
,那么Redux会给出一个错误,我必须为我的reducer提供一个 initialState
. 这有什么解决方法吗?
编辑:
Store.js:
import { createStore, applyMiddleware, compose } from 'redux';
import { autoRehydrate } from 'redux-persist';
import Config from '../Config/DebugSettings';
import RehydrationServices from '../Services/RehydrationServices';
import ReduxPersist from '../Config/ReduxPersist';
// creates the store
export default (rootReducer) => {
/* ------------- Redux Configuration ------------- */
const middleware = []; //currently none
const enhancers = [];
/* ------------- Assemble Middleware ------------- */
enhancers.push(applyMiddleware(...middleware))
/* ------------- AutoRehydrate Enhancer ------------- */
// add the autoRehydrate enhancer
if (ReduxPersist.active) {
enhancers.push(autoRehydrate())
}
// in dev mode, we'll create the store through Reactotron
const createAppropriateStore = __DEV__ ? console.tron.createStore : createStore
const store = createAppropriateStore(rootReducer, compose(...enhancers))
// configure persistStore and check reducer version number
if (ReduxPersist.active) {
RehydrationServices.updateReducers(store)
}
return store
}