【发布时间】:2018-11-17 05:33:48
【问题描述】:
我是 Flutter 的新手,响应式编程对我来说也是新事物。
假设我想用 Flutter 构建一个计时器。
我添加了一个Scaffold,其中包含所有必要的东西,我添加了一个IconButton,它启动了Stopwatch和Text,它显示了经过的时间。我还添加了Timer.periodic 以定期(每 0.5 秒)更新文本。
Text 小部件通过检查Stopwatch 是否正在运行并更新其值来控制自己的状态。
所以现在假设我想要更复杂的逻辑,根据与Text 的同级按钮的一些操作来更改文本。但是,不能直接从同级小部件调用 Text 小部件的 setState。据我了解,反应范式的重点是状态可以沿树传递。但是,如果我将Scaffold 设为StatefulWidget 并每0.5 秒更新一次父级的状态,它将重绘我的整个Scaffold 及其所有子级。所以最终当Scaffold 变得足够大时,它将不得不更新所有内容而不是单个Text 小部件。
我说的对吗?是否有任何解决方案。我读过一些关于 Streams 和 Sinks 的文章,但它看起来很复杂,我认为应该有另一种解决方案。
【问题讨论】:
-
你看过 Bloc 模式或 scopeModel 吗?
-
有趣的文章有一些建议medium.freecodecamp.org/…
标签: flutter