Я определяю свое локальное хранилище так:
export default new class LocalStorage {
setItem(key, data) {
window.localStorage.setItem(key, JSON.stringify(data));
}
getItem(key) {
return JSON.parse(window.localStorage.getItem(key));
}
removeItem(key) {
window.localStorage.removeItem(key);
}
}();
и мой RestrictionRoute так:
const localStorageData = LocalStorage.getItem("root");
export const RestrictionRoute = ({ component: Component, ...rest }) => {
console.log(localStorageData);
return (
<Route
{...rest}
render={props =>
localStorageData && localStorageData.token ? (
<Redirect to="/" />
) : (
<Component {...props} />
)
}
/>
);
};
Мое действие выхода из системы:
export function logOut() {
return function(dispatch) {
dispatch(changeLoadingStatusTo(true));
LocalStorage.removeItem("root");
dispatch(changeLoadingStatusTo(false));
dispatch(push("/login"));
};
}
Когда я нажимаюВыйти из системы в заголовке, мое действие выхода из системы инициировано, данные также удалены из локального хранилища, и в RestrictionRoute я снова проверяю localalstorage с помощью console.log(localStorageData)
, затем данные все еще существуют.Это меня смущает.