在setState()之后更新Flutter页面

问题描述 投票:0回答:1

我有一个用户关注/取消关注页面,在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());

有任何想法吗?稍后我将使用确切的代码更新。

if-statement widget dart state flutter
1个回答
0
投票

问题是你使用了==(相等)比较运算符而不是=(赋值)。将您的代码更改为以下内容:

  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; 
      });
  });
}
© www.soinside.com 2019 - 2024. All rights reserved.