ReactJS -> 为什么我的状态在第一次尝试时返回未定义?

我试图将用户的登录状态保存在一个状态中,然后将其发送到 cookie。问题是,我第一次通过登录表单登录时,我将登录状态设置为“已登录”,然后我控制台记录它,但它返回未定义,然后在第二次按登录按钮时(在我已经登录之后)成功)它最终在控制台中显示“已登录”。这是为什么?我如何解决它?这是相关代码:


    const [loginStatus, setLoginStatus]= useState()

    //Here we have irrelevant code that validates the login info entered and then it calls authorizeUser

    const authorizeUser=()=>{

      setLoginStatus('logged in')

      console.log(loginStatus)

}


婷婷同学_
浏览 43回答 1
1回答

小怪兽爱吃肉

useEffect每次渲染后运行,因此即使您设置loginStatusin的值useEffect(),第一次渲染loginStatus也没有任何值。您可以通过在调用中传递默认值来在第一次渲染之前useState()设置默认值,如下所示:const [loginStatus, setLoginStatus] = useState('whatever you want here, even a null string')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript