在哪里将 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)));
我正在尝试使用浏览器 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)));