Локальное хранилище очищается из браузера при перезапуске приложения - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть веб-страница, основанная на реакциях JS и REDEX. Когда я изменяю состояние приложения, оно также сохраняется и обновляется в локальном хранилище, так что пользователю не нужно входить снова и снова, пока он не выходит из системы.

Но проблема, с которой я сталкиваюсь, когда яснова откройте страницу, очищается ли мое локальное хранилище.

Я не сталкиваюсь с этой проблемой, когда запускаю этот код на локальном хосте с использованием npm run start . Эта проблема возникает только в рабочей сборке.

Я использую реагирующие сценарии для построения кода.

Я сохраняю и загружаю состояние из локального хранилища, используя следующий код:

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};
};

Я также пытался использовать PersistGate из redux-persist в качестве другого подхода для решения этой проблемы, но эта проблема также возникает в PersistGate. .

...