【发布时间】:2020-10-09 06:46:19
【问题描述】:
举例说明问题:
如果您创建一个新的 Flutter 项目,您将获得默认的计数器应用程序,其中 _counter 变量在 State 类的 setState 方法中递增:
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
....
但下面的代码也可以正常工作:
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
_counter++;
setState(() {});
}
....
这是 DartPad 中一个工作示例的link。
setState 方法的 documentation 声明
提供的回调立即同步调用。
还有……
调用 setState 会通知框架此对象的内部状态已发生更改,可能会影响此子树中的用户界面,这会导致框架为此 State 对象安排构建。
根据这个定义,我认为没有理由在调用setState 方法之前不更改状态变量,然后向setState 提供一个空回调。是否存在这种方法不起作用的情况,或者它或多或少“只是”一个品味问题(可读性、干净的编码......)?
【问题讨论】:
标签: flutter dart statefulwidget