在setState()之后更新Flutter页面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在setState()之后更新Flutter页面相关的知识,希望对你有一定的参考价值。
我有一个用户关注/取消关注页面,在Firebase中搜索关注者列表,如果找到了他们的usedID,则返回一个布尔值...
Future<Null> _friends() async {
fb.child("users/${userid}/Following/${id}").onValue.listen((Event event) {
setState((){
if (event.snapshot.value != null) {
friends == true;
} else if (event.snapshot.value == null) {
friends == false;
}
});
});
}
然后将bool设置为一个单独的函数,改变公共bool ...
bool friends;
问题是我的Widget / Scaffold在这里没有更新......
friends == true ? new RaisedButton(onPressed: unfollow()) :
new RaisedButton(onPressed: follow());
有任何想法吗?稍后我将使用确切的代码更新。
答案
问题是你使用了==
(相等)比较运算符而不是=
(赋值)。将您的代码更改为以下内容:
Future<Null> _friends() async {
fb.child("users/${userid}/Following/${id}").onValue.listen((Event event) {
setState((){
// this will return true or false which is what you want based on your code :)
friends = event.snapshot.value == null;
});
});
}
以上是关于在setState()之后更新Flutter页面的主要内容,如果未能解决你的问题,请参考以下文章
Flutter:setState 在第一次尝试时工作,但在响应 = 等待后没有工作
Flutter - setState 不更新内部有状态小部件