【发布时间】:2021-02-13 21:58:34
【问题描述】:
以下是我的代码,我试图在我的注销按钮内调用 setState,因为此按钮仅在 Auth0 isLoggedIn 为真时呈现。 这似乎导致了无限循环,我的猜测是因为正在调用 Auth0 API 每次。我正在关注本教程:https://www.youtube.com/watch?v=35lXWvCuM8o 唯一的区别是我试图在没有 onClick 函数的情况下调用 setState, 谁能给我解释一下问题和解决方法,提前谢谢!
我知道我可以使用 localStorage 来维护用户登录会话,但我这样做纯粹是为了学习 React Hooks,
import React, { useState, useContext, useCallback} from 'react';
import { useAuth0 } from '@auth0/auth0-react';
import { ValueContext } from './ValueContext'
const LogoutButton = () => {
const [login, setLogin] = useContext(ValueContext);
const { logout, isAuthenticated } = useAuth0();
const updateLogin = () => {
setLogin({loggedIn:'false'});
};
return (
isAuthenticated && (
<>
<button onClick={() => logout()}>
Log Out
</button>
<h1>{login.loggedIn}</h1>
{updateLogin()}
</>
)
【问题讨论】:
标签: reactjs react-hooks components infinite-loop setstate