LocalStorage очищается после обновления страницы
Работаю с LocalStorage впервые и если использовать обычный метод localStorage.setItem, то все работает. Однако нужно подключить функию с другого файла. И вроде оно создается, однако после обновления страницы стирается. Подскажите, как это исправить?
Мой файл, где используется функция
import { useState, useCallback, useEffect } from "react"
import LocalStorage from "./localStorage"
export const useAuth = () => {
const [token, setToken] = useState(null)
const [userId, setUserId] = useState(null)
const [ready, setReady] = useState(false)
const login = useCallback( (jwtToken, id)=>{
setToken(jwtToken)
setUserId(id)
LocalStorage.setItem('Person', {token: jwtToken, userId: id})
}, [])
const logout = useCallback( ()=>{
setToken(null)
setUserId(null)
LocalStorage.removeItem('Person')
}, [])
useEffect( () =>{
try {
const data = JSON.parse(LocalStorage.getItem('Person'))
if (data && data.token) {
login(data.token, data.userId)
}
setReady(true)
} catch (error) {}
}, [login])
return {login, logout, token, userId, ready}
}
Файл с функцией
let isLocalStorageSupported = typeof localStorage === 'object';
try {
localStorage.setItem("Person", 'test');
localStorage.removeItem("Person");
} catch (e) {
isLocalStorageSupported = false;
if (e.code === DOMException.QUOTA_EXCEEDED_ERR && localStorage.length === 0) {}
else {throw e;}
}
const LocalStorage = {
getItem: (key) => {
if (isLocalStorageSupported) {
return JSON.parse(localStorage.getItem(key));
}
return null;
},
setItem: (key, value) => {
if (isLocalStorageSupported) {
localStorage.setItem(key, value);
}
},
removeItem: (key) => {
if (isLocalStorageSupported) {
localStorage.removeItem(key);
}
},
};
export default LocalStorage;