我想知道在setState不为变量设置新值的情况下调用背后的要点。
readLocal() async {
prefs = await SharedPreferences.getInstance();
id = prefs.getString('id') ?? '';
if (id.hashCode <= peerId.hashCode) {
groupChatId = '$id-$peerId';
} else {
groupChatId = '$peerId-$id';
}
setState(() {});
}
Run Code Online (Sandbox Code Playgroud)
我会说这只是一个约定。以上可以改写为
readLocal() async {
prefs = await SharedPreferences.getInstance();
setState(() {
id = prefs.getString('id') ?? '';
if (id.hashCode <= peerId.hashCode) {
groupChatId = '$id-$peerId';
} else {
groupChatId = '$peerId-$id';
}
});
}
Run Code Online (Sandbox Code Playgroud)
两者都会做同样的事情。setState(() {})在改变state variable外观整洁和可靠后调用。
根据 的实现部分setState,它将按顺序放在下面。
final dynamic result = fn() as dynamic;)_element.markNeedsBuild();)| 归档时间: |
|
| 查看次数: |
3913 次 |
| 最近记录: |