作为颤振的新手,在 Flutter
应用程序中使用 setState
时,我感到非常困惑。在下面的代码中 boolean searching
和 var resBody
在 setState
中使用。我的问题是为什么只有 searching
和 resBody
在 setState 中?为什么其他变量不可变?
var resBody;
bool searching = false,api_no_limit = false;
String user = null;
Future _getUser(String text) async{
setState(() {
searching = true;
});
user = text;
_textController.clear();
String url = "https://api.github.com/users/"+text;
var res = await http
.get(Uri.encodeFull(url), headers: {"Accept":
"application/json"});
setState(() {
resBody = json.decode(res.body);
});
}
原文由 Yeahia2508 发布,翻译遵循 CC BY-SA 4.0 许可协议
根据 文档:
因此,如果小部件的状态发生更改 ,您必须 调用
setState
来触发视图的重建并立即看到新状态所暗示的更改。无论如何,下面的片段是等效的。
第一种情况(直接形成
flutter create <myproject>
):第二种情况:
我不知道的原因是,如果第一种情况是使用
setState
的传统方式,我会说是因为代码的可读性。