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
相关产品推荐
相关产品推荐

