Я перешел с redux-persist V4
на redux-persist V5
, также обновил react-native
версию с 0.46
до 0.62
и получил следующую ошибку:
Здесь это мой store.js
import { createStore, applyMiddleware, compose, combineReducers } from 'redux';
import thunk from 'redux-thunk';
import { createLogger } from 'redux-logger'
import reducers from './reducer'
//import { autoRehydrate } from 'redux-persist'
export default function configureStore(initialState = undefined) {
let middleware = [];
middleware.push(thunk);
console.log("Environment:", __DEV__);
if (__DEV__) {
const logger = createLogger();
middleware.push(logger);
}
const enhancer = compose(
applyMiddleware(...middleware),
// autoRehydrate()
);
const store = createStore(reducers, initialState, enhancer);
if (module.hot) {
module.hot.accept(() => {
const nextRootReducer = require('./reducer').default;
store.replaceReducer(nextRootReducer)
})
}
return store;
}
мой reducer.js
import { reducer as screenReducer } from './screens/reducer';
import { combineReducers } from 'redux';
import { persistCombineReducers, createTransform } from 'redux-persist'
import AsyncStorage from '@react-native-community/async-storage';
export const persistConfig = {
reducerVersion: '2.0',
key: 'root',
storage: AsyncStorage,
debug: __DEV__,
};
export default persistCombineReducers(persistConfig,screenReducer);
и использование в App.js
const store = configureStore();
this.setState({dataStatus: "Loading from local storage..."});
persistStore(store, {storage: AsyncStorage}, () => {
this.setState({dataStatus: "Loaded"});
this.setState({
...this.state,
hydrated: true
})
})