如何在颤振中调用 setState

时间:2021-05-06 06:58:05

标签: flutter state setstate

使用以下代码示例调用 setState 方法有什么本质区别吗?

1.在 setState 中设置状态变量

setState((){
  _stateVariable1 = 'value1';
  _stateVariable2 = 'value2';
});

2.在 setState 之外设置状态变量

_stateVariable1 = 'value1';
_stateVariable2 = 'value2';
setState((){});

1 个答案:

答案 0 :(得分:1)

我认为除了;

数字 1 是官方认可的显示您想要执行状态更改的方式。 第 2 点是我们新手喜欢做的事情 :)

在这里阅读,

https://api.flutter.dev/flutter/widgets/State/setState.html

<块引用>

调用 setState 会通知框架此对象的内部状态已以可能影响此子树中的用户界面的方式发生更改,这会导致框架为此 State 对象安排构建。

意思是在里面与否无关紧要。一切都用您新设置的变量重建。

<块引用>

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

setState() 似乎无法处理未来的事件,它们需要等待并完成,然后才能将它们应用于 setstate。

https://flutter.dev/docs/perf/rendering/best-practices

<块引用>

当 setState() 在 State 上被调用时,所有后代小部件都会重建。 因此,将 setState() 调用本地化到子树的部分 其 UI 实际需要更改。避免在高处调用 setState() 如果更改包含在树的一小部分,则树。