Я делаю систему аутентификации и после того, как бэкэнд перенаправляет меня на страницу веб-интерфейса, я делаю запрос API для userData и сохраняю эти данные в localStorage. Затем я пытаюсь загрузить Spinner или UserInfo.
Я пытаюсь прослушать значение localStorage с помощью useEffect, но после входа в систему я получаю 'undefined'. Когда значение localStorage обновлено, useEffect не запускается снова, а Spinner продолжает вращаться вечно.
Я попытался сделать: JSON.parse(localStorage.getItem('userData'))
, и тогда я получил useEffect Infinitive l oop.
Only когда я обновляю страницу, появляются значения localStorage и я могу отображать их вместо Spinner
Что я делаю не так?
Может быть, есть лучший способ загрузить userData, когда он будет готов?
Я пытаюсь корректно обновить DOM?
Спасибо за ответы;)
import React, { useState, useEffect } from 'react';
import { Spinner } from '../../atoms';
import { Navbar } from '../../organisms/';
import { getUserData } from '../../../helpers/functions';
const Main = () => {
const [userData, setUserData] = useState();
useEffect(() => {
setUserData(localStorage.getItem('userData'));
}, [localStorage.getItem('userData')]);
return <>{userData ? <Navbar /> : <Spinner />}</>;
};
export default Main;