Flutter布尔变量不更新

时间:2020-06-25 09:02:37

标签: flutter dart flutter-layout

我用Flutter编写的以下代码有问题。我正在尝试实现一个搜索栏,在该栏中我将根据匹配查询字符串显示结果。开头将变量isStorage设置为false。但是,当我尝试在_getALlPosts()中更新其值时,它没有得到更新。

class _HomeState extends State<Home> {
 final SearchBarController<Post> _searchBarController = SearchBarController();
 bool isReplay = false;
 bool isStorage = false;

 Future<List<Post>> _getALlPosts(String text) async {
await Future.delayed(Duration(seconds: text.length == 4 ? 2 : 1));

List<Post> posts = [];
var random = new Random();

if (text.contains("pha")) {
  isStorage = true;
}
}
}

2 个答案:

答案 0 :(得分:1)

您需要使用setState来更新值:

if (text.contains("pha")) {
     setState(() {
      isStorage = true;
    });
}

答案 1 :(得分:1)

我相信您会丢失包装isStorage = true;的setState

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