重新启动应用程序时,浏览器将清除本地存储

时间:2019-11-06 10:48:29

标签: reactjs redux local-storage persistent-storage redux-persist

我有一个基于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上出现。

0 个答案:

没有答案