Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尽管有条件更新,组件仍保持更新(REACT、RERENDER、AUTH0)_Javascript_Reactjs_Express_Conditional Statements_Render - Fatal编程技术网

Javascript 尽管有条件更新,组件仍保持更新(REACT、RERENDER、AUTH0)

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 './

下面是我的代码,我添加了一个条件alreadySet方法来确保updateLogin只发生一次,但是react组件一直在调用updateLogin,我的条件语句有什么问题吗?有人能解释一下为什么这种情况会持续发生吗

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}
)
);
};
导出默认注销按钮