Flutter - 在 setState 内部或外部更改变量?

Ric*_*Web 8 flutter

在 Flutter Widget 中更改状态时,这样做有什么区别吗?

_variable1 = true;
variable2 = 'abc';
setState(() => {});
Run Code Online (Sandbox Code Playgroud)

或这个

setState(() => {
    _variable1 = true;
    variable2 = 'abc';
});
Run Code Online (Sandbox Code Playgroud)

文档中的几乎所有示例都使用最后一个,但我没有注意到任何实际差异。在这两种情况下都设置了变量并更新了状态,但我想知道是否存在一种情况,如果使用一种或另一种,则某些东西无法按预期工作。

Sam*_*ani 7

根据 flutter docs,它指出:

通常建议 setState 方法仅用于包装对状态的实际更改,而不是任何可能与更改相关联的计算。

我主要认为这是出于可读性目的,即,您需要将setState正在更改的小部件的新版本中的内容放入正文中,而不要像问题中的第一种方法那样将其与计算混合。


Fel*_*lta 6

已经在这里发布这个问题。

这是一个约定,没有关系,但是,将所有更改包装在 setState 函数中是很好的实践。但两种情况下的结果都是一样的。