Я использую redux-immutable
и immutable.js
в моем хранилище редуксов.
Я получаю сообщение об ошибке, когда пытаюсь внедрить избыточное копирование на мой сайт Gatsby. Он работает должным образом без избыточного сохранения.
Ошибка:
Предыдущее состояние, полученное редуктором, имеет непредвиденный тип. Ожидаемый аргумент, который будет экземпляром Immutable.Collection или Immutable.Record со следующими свойствами: «поиск», «листинг».
Также получим это:
Ошибка типа: inputState.withMutations не является функцией
Следовал учебнику из https://www.npmjs.com/package/redux-persist, но безуспешно
Вот мой store.js
файл:
import { createStore, applyMiddleware } from "redux";
import { combineReducers } from "redux-immutable";
import { logger } from "redux-logger";
import createSagaMiddleware from "redux-saga";
import { composeWithDevTools } from "redux-devtools-extension";
import { fromJS } from "immutable";
import { persistStore, persistReducer } from "redux-persist";
import storage from "redux-persist/lib/storage"; // defaults to localStorage for web
import rootReducer from "../reducers/index";
import rootSaga from "../sagas/index";
const persistConfig = {
key: "root",
storage
};
const reducers = combineReducers({
...rootReducer
});
const persistedReducer = persistReducer(persistConfig, reducers);
const configStore = (initialState = fromJS({})) => {
const sagaMiddleware = createSagaMiddleware();
const store = createStore(
persistedReducer,
initialState,
composeWithDevTools(applyMiddleware(sagaMiddleware, logger))
);
sagaMiddleware.run(rootSaga);
if (module.hot) {
module.hot.accept("../reducers", () => {
store.replaceReducer(require("../reducers/index").default);
});
}
let persistor = persistStore(store);
return {
store,
persistor
};
};
const { store, persistor } = configStore();
export { store, persistor };
Вот мой файл Гэтсби wrap-with-provider.js
:
import React from "react";
import { PersistGate } from 'redux-persist/integration/react'
import { Provider } from "react-redux";
import { store, persistor } from "./store/index"
export default ({ element }) => (
<Provider store={store}>
{/* loading prop can be null, or any react instance, e.g. loading={<Loading />} */}
<PersistGate loading={null} persistor={persistor}>
{element}
</PersistGate>
</Provider>
);