我有一个基于react js和redux构建的网页。当我更改应用程序的状态时,它也将存储在本地存储中并进行更新,因此用户无需注销即可一次又一次登录。
但是当我重新打开页面时,我面临的问题是我的本地存储空间已被清除。
当我使用 npm run start 在本地主机上运行此代码时,我没有遇到这个问题。此问题仅出现在生产版本中。
我正在使用react-scripts构建代码。
我正在使用以下代码从本地存储中保存和加载状态:
export const loadState = () => {
try {
const serializedState = localStorage.getItem('state');
if (serializedState === null) {
return undefined;
}
return JSON.parse(serializedState);
} catch (err) {
return undefined;
}
};
export const saveState = (state: any) => {
try {
const serializedState = JSON.stringify(state);
localStorage.setItem('state', serializedState);
} catch {
// ignore write errors
}
};
我正在使用以下代码创建商店:
export default () => {
const savedState = loadState();
let store: any;
if(savedState){
store = createStore(reducer, savedState, middleware);
} else {
store = createStore(reducer, {}, middleware);
}
store.subscribe(throttle(() => {
saveState(store.getState());
}, 1000))
return {store};
};
我还尝试使用redux-persist中的PersistGate作为解决此问题的另一种方法,但是这个问题也在PersistGate上出现。