在StreamBuilder中使流仅运行一次

时间:2019-06-29 17:08:42

标签: flutter dart stream stream-builder

我有一个重功能循环X次。如果我将此流放在StreamBuilder中,则Stream会一次又一次地永远运行,但是我只需要使其运行一次(执行X循环)并停止即可。

为解决将来的功能问题,我使用了AsyncMemoizer,但不能将其用于流功能。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

如果可以确定,则不要重建窗口小部件,而应像下面的代码那样尝试。 _widget 将在initState中创建一次,然后将在build方法中返回“已缓存”小部件。

{{1}}

答案 1 :(得分:0)

正如RémiRousselet所建议的那样,应在状态良好管理的小部件树中使用StreamBuilder。我在Stream中调用setState((){}),这导致UI每次都更新,从而使StreamBuilder重建,因此重新启动流。