You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React条件渲染实现登录登出切换无报错但功能失效问题求助

问题原因

你代码的核心问题是setState的更新函数返回值写法不符合JS语法规则:
当箭头函数直接返回对象字面量时,如果没有用小括号包裹对象,JS引擎会把对象外侧的{}识别为函数体的块作用域标记,你写的isLoggedIn: !prevState.isLoggedIn会被判定为合法的JS标签语句,不会被当作对象的属性返回,因此state没有被更新,也不会抛出语法错误。

此外handleClick方法不需要额外return setState的执行结果。


修复方案

你可以任选以下任意一种写法修改handleClick方法即可:

方案1:用小括号包裹要返回的state对象(推荐)

handleClick(){
    this.setState((prevState) => ({
        isLoggedIn: !prevState.isLoggedIn
    }))
}

方案2:在函数体内显式return对象

handleClick(){
    this.setState((prevState) => {
        return {
            isLoggedIn: !prevState.isLoggedIn
        }
    })
}

修改后点击按钮就可以正常切换登录登出状态了。

内容的提问来源于stack exchange,提问作者user14925601

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 08:24:00