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

Flutter中currentUser状态不更新,loggedIn始终为false问题求助

问题原因及解决方法

核心问题

你代码里的赋值操作写错了,在setState里误用了相等判断符==,而非赋值符=。

看这段代码:

setState(() {
  loggedIn == true;
});

==的作用是判断两个值是否相等,不会修改loggedIn的取值。正确写法应该用=来赋值:

setState(() {
  loggedIn = true;
});

额外优化建议

  • 可以简化赋值逻辑,直接写loggedIn = true;,无需和布尔值比较后再赋值。
  • 也可以结合用户存在的判断直接赋值,让代码更简洁:
    void getCurrentUser() {
      try {
        final user = _auth.currentUser;
        setState(() {
          loggedIn = user != null;
          if (user != null) {
            loggedInUser = user;
          }
        });
      } catch (e) {
        print(e);
      }
    }
    

这种写法能避免再次出现赋值符号误用的问题,逻辑也更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:42:24