Javascript 尽管有条件更新,组件仍保持更新(REACT、RERENDER、AUTH0)
下面是我的代码,我添加了一个条件alreadySet方法来确保updateLogin只发生一次,但是react组件一直在调用updateLogin,我的条件语句有什么问题吗?有人能解释一下为什么这种情况会持续发生吗Javascript 尽管有条件更新,组件仍保持更新(REACT、RERENDER、AUTH0),javascript,reactjs,express,conditional-statements,render,Javascript,Reactjs,Express,Conditional Statements,Render,下面是我的代码,我添加了一个条件alreadySet方法来确保updateLogin只发生一次,但是react组件一直在调用updateLogin,我的条件语句有什么问题吗?有人能解释一下为什么这种情况会持续发生吗 import React, { useState, useContext, useEffect} from 'react'; import { useAuth0 } from '@auth0/auth0-react'; import { ValueContext } from './
import React, { useState, useContext, useEffect} 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'});
console.log(login.loggedIn + " = login.loggedinvalue before logout")
console.log('false log')
};
let alreadySet = false;
if(!alreadySet && isAuthenticated){
alreadySet = true;
updateLogin()
}
return (
isAuthenticated && (
<>
<button onClick={() => logout()}>
Log Out
</button>
<h1>{login.loggedIn}</h1>
</>
)
);
};
export default LogoutButton
import React,{useState,useContext,useffect}来自“React”;
从'@auth0/auth0'导入{useAuth0};
从“/ValueContext”导入{ValueContext}
const logout按钮=()=>{
const[login,setLogin]=useContext(ValueContext);
const{logout,isAuthenticated}=useAuth0();
常量updateLogin=()=>{
setLogin({loggedIn:'false'});
console.log(login.loggedIn+“=注销前的login.loggedinvalue”)
console.log('false log')
};
设alreadySet=false;
如果(!alreadySet&&isAuthenticated){
alreadySet=true;
updateLogin()
}
返回(
已验证&&(
注销()}>
注销
{login.loggedIn}
)
);
};
导出默认注销按钮