flutter - Flutter 两个关于 setState() 的代码的区别
问题描述
这些代码是否同样有效?据我了解, setState() 通知框架该对象的内部状态已更改,因此我们是否在其中传递参数并不重要。
Future<void> _incrementCounter() async {
setState(() {
_counter++;
});
Directory directory = await getApplicationDocumentsDirectory();
final String dirName = directory.path;
await File('$dir/counter.txt').writeAsString('$_counter');
}
_______________________________________________________________
Future<void> _incrementCounter() async {
_counter++;
setState(() {
});
Directory directory = await getApplicationDocumentsDirectory();
final String dirName = directory.path;
await File('$dir/counter.txt').writeAsString('$_counter');
}
解决方案
是的,无论你_counter++
在里面setState()
还是在它之前写,它都会做同样的事情。
setState(() {
_counter++;
});
像上面这样写只会让代码更容易理解。因为任何正在查看我们在setState()
此处调用的代码以反映_counter++
UI 中的更改的人都很清楚。