在哪里将 persistedState 放在 Create-Store 中以将 redux 存储保存到 localStorage

Where to put persistedState in Create-Store for saving redux store into localStorage

我正在尝试使用浏览器 LocalStorage 保存我的 Redux-Store。但我不确定在哪里插入我的 persistedState。这是我的代码。

import rootReducer from './Reducers';
import initialState from './Reducers/initialState';

import { createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;

const saveToLocalStorage = (state) => {
    try {
        const serializedState = JSON.stringify(state);
        localStorage.setItem('state', serializedState);
    } catch (error) {
        console.log(error);
    }
};
const loadFromLocalStorage = (state) => {
    try {
        const serializedState = localStorage.getItem('state');
        if (serializedState == null) return undefined;
        return JSON.parse(serializedState);
    } catch (error) {
        return undefined;
    }
};
const persistedState = loadFromLocalStorage();
// I inserted my persistedState in createStore but I am getting an error ==> {Expected to be function}
const store = createStore(rootReducer, initialState, persistedState,  composeEnhancers(applyMiddleware(thunk)));


store.subscribe(() => saveToLocalStorage(store.getState()));

export default store;

这取决于你什么时候需要那个状态,但我想你会想在 init 上加载它,所以将它合并到你的初始状态是有意义的:

const persistedState = loadFromLocalStorage();
const store = createStore(rootReducer, {
  ...initialState,
  ...persistedState
}, composeEnhancers(applyMiddleware(thunk)));