React Hook useEffect содержит вызов setAuthenticated. Без списка зависимостей это может привести к бесконечной цепочке обновлений. - PullRequest
0 голосов
/ 03 августа 2020

Я пишу код, который включает условное отображение в реакции. Я использую useEffect() для изменения переменной состояния, но он предупреждает меня, что это может вызвать бесконечную цепочку обновлений. Ниже приведен код.


function MainPage()
{
    useEffect(()=>
    {
        if(!Cookies.get('authToken'))
        {
            console.log("here")
            setAuthenticated(false);
        }
    })

    const [authenticated, setAuthenticated] = useState(undefined);
    return(
        authenticated ? <Profile /> : <Auth />
    )
}

Кроме того, есть ли способ, которым мой код будет работать следующим образом:

  • проверьте файлы cookie из браузера
  • если не файлы cookie, тогда компонент render Auth, в противном случае проверьте из бэкэнда, является ли cook ie действительным или нет
  • если cook ie действителен, тогда визуализируйте Profile компонент, иначе визуализируйте Auth component.

в настоящее время он отображает одну из страниц в зависимости от начального состояния переменной состояния authenticated, затем проверяет файлы cookie и снова отображает одну из страниц в зависимости от наличия файлов cookie.

...