Dynamic injection reducer via Hook is not working
See original GitHub issueI’m using react boilerplate
In react-boilerplate/app/configureStore.js I added
import { AsyncStorage } from "react-native";
import {
persistReducer,
persistStore,
} from "redux-persist";
import createReducer from "./reducers";
...
...
const persistConfig = {
key: "v1",
storage: AsyncStorage
};
const persistedReducer = persistReducer(persistConfig, createReducer());
...
...
const store = createStore(
persistedReducer,
initialState,
composeEnhancers(...enhancers)
);
const persistor = persistStore(store);
store.persistor = persistor;
...
...
return { store, persistor };
in react-boilerplate/app/app.js
import { PersistGate } from "redux-persist/integration/react";
// Create redux store with history
const initialState = {};
const { persistor, store } = configureStore(initialState, history);
...
...
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<AppEntry />
</PersistGate>
</Provider>
in react-boilerplate/app/utils/reducerInjectors.js added
store.replaceReducer(createReducer(store.injectedReducers));
store.persistor.persist();
in app/containers/HomePage/index.js already added by react boilerplate
import { useInjectReducer } from 'utils/injectReducer';
import reducer from './reducer';
...
...
const key = 'home';
useInjectReducer({ key, reducer });
the error I got in console
Unexpected key “contactPage” found in previous state received by the reducer. Expected to find one of the known reducer keys instead: “global”, “language”, “loginPage”, “drawer”, “router”. Unexpected keys will be ignored.
This error shows because _persist is no more exists in redux state
When we change any thing to redux state , after refreshing the page, every thing will be gone. Without injecting , every things work fine
I spent many hours to fix this and I wasn’t able. Any help will be appreciate it
Issue Analytics
- State:
- Created 4 years ago
- Comments:6
A quicker (albeit more manual) approach is to just state each reducer in your root reducer, rather than relying on the injectedReducer paradigm. Works well if you don’t have too many reducers in play.
is there any update?