Как вы создаете таймер простоя сеанса, который регистрирует пользователя с реакцией приведения? - PullRequest
1 голос
/ 03 февраля 2020

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

Проблема, с которой я сталкиваюсь, заключается в что моя кнопка выхода больше не работает, потому что хранилище сеансов хранит информацию для входа и токен в локальном хранилище и не удаляется, пока я не сделаю это вручную.

Ниже приведен мой код.

import { createStore, applyMiddleware, compose } from "redux";
import rootReducer from "../reducers";
import thunk from "redux-thunk";

function saveToLocalStorage(state) {
  try {
    const serializedState = JSON.stringify(state);
    localStorage.setItem("state", serializedState);
  } catch (e) {
    console.log(e);
  }
}

function loadFromLocalStorage() {
  try {
    const serializedState = localStorage.getItem("state");
    if (serializedState === null) return undefined;
    return JSON.parse(serializedState);
  } catch (e) {
    console.log(e);
    return undefined;
  }
}

const storeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ 
    || compose;

const persistedState = loadFromLocalStorage();

const store = createStore(
  rootReducer,
  persistedState,
  storeEnhancers(applyMiddleware(thunk))
);

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

export default store;
...