【发布时间】:2021-07-12 18:36:25
【问题描述】:
我正在编写一个持续时间为 1 秒的周期性流来显示时间:
stream: Stream.periodic(Duration(seconds: 1)),
builder: (context, snapshot) {
return Text(DateTime.now().toString());
}
另外,我可以通过以下方式实现相同的目标:
Stream.periodic(Duration(seconds: 1)).listen((){
setState(){});
也是。
我想知道,哪种方法更有效?
流生成器每秒返回一个小部件或在其他情况下返回一个小部件树。而setState() 在我的情况下重建整个应用程序小部件树。我在这里很困惑。请指教。
【问题讨论】:
-
devtools 能有更准确的答案吗?
-
@pskink 现在似乎提出了在
StreamBuilder内使用StatefulBuilder的问题,StreamBuilder 将每秒返回 StatefullBuilder。另外,为什么我们需要每秒钟设置一次状态,因为我已经在 StreamBuilder 的范围内拥有了fields。无论如何。开放讨论。 -
我不想避免它,但我对这两种方法的性能感到好奇,(
StreamBuildervsStream.listen(setState(){}))在我的特殊情况下。 @ambiguous58 在下面指出了一些有用的提示。
标签: flutter dart widget stream-builder