[英]How persist redux store to localstorage
can't persist store to localstorage, using redux-persist. 不能使用redux-persist将存储持久化到本地存储。 Have error:
有错误:
Store does not have a valid reducer.
商店没有有效的减速器。 Make sure the argument passed to combineReducers is an object whose values are reducers.
确保传递给CombineReducers的参数是一个其值为减速器的对象。
Help pls to configure store or are there another ways 帮助请配置存储或还有其他方法
import {applyMiddleware, compose, createStore} from "redux";
import thunk from "redux-thunk";
import {createLogger} from "redux-logger";
import rootReducer from "../reducer/index";
import {loadState, saveState} from "../utils";
import { persistStore, persistCombineReducers } from 'redux-persist';
import storage from 'redux-persist/lib/storage';
const config = {
key: 'root',
storage,
}
const reducer = persistCombineReducers(config, rootReducer)
function configureStore(initialState) {
let createStoreWithMiddleware;
const middleware = process.env.__DEV__
? applyMiddleware(thunk, createLogger())
: applyMiddleware(thunk);
createStoreWithMiddleware = compose(
middleware,
);
const store = createStoreWithMiddleware(createStore)(reducer, initialState);
let persistor = persistStore(store)
if (module.hot) {
module.hot
.accept('../reducer', () => {
const nextRootReducer = require('../reducer/index');
store.replaceReducer(nextRootReducer);
});
}
store.subscribe(() => {
saveState(store.getState().albums)
});
return {store, persistor};
}
export default configureStore
As the error message is already telling - you have to pass an object to the persistCombineReducers
method. 由于错误消息已经在告诉您-您必须将一个对象传递给
persistCombineReducers
方法。
Please have a look at the following example . 请看下面的例子 。 (Some of your code is commented there to have a minimal example.)
(您的某些代码在此处被注释为一个最小的示例。)
So the code of your combined reducer could be like this: 因此,您的组合reducer的代码可能是这样的:
const reducer = persistCombineReducers(config, {root: rootReducer});
const store = createStore(reducer, initialState);
If you're only having one reducer it would be better to use: 如果您只有一个减速器,最好使用:
const reducer = persistReducer(config, rootReducer);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.