Flutter setState{}仍在更新小部件状态,即使在更改变量后出现延迟

问题描述

我正在做的事情是调用 setState()方法,然后在5秒钟的延迟后更新状态。即使那样,我仍然看到该州正在更新。

setState(() {
  print("callback");
});
sleep(const Duration(seconds: 5));
_randomNumber = Random().nextInt(100);
print("Number : $_randomNumber");

如您所见,在延迟之后,_randomNumber正在更改,并且我已将此_randomNumber值设置为“文本小部件”。 10秒后,文本将使用新的_randomNumber更新。那么,调用 setState((){})并将状态更改仅包装在setState()内部有什么用?

解决方法

setState是立即强制进行更新的方法。您有机会控制时间。重建树不是 only 方式。任何其他数量的事件都可能导致对构建函数的另一次调用。但那时您就无法控制。它会作为其他事情的副作用而更新。