Мне удалось создать постоянное локальное хранилище, которое позволяет пользователю входить в систему и сохранять случайно сгенерированный токен 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;