我正在探索 Flutter,我真的很喜欢它。 我正在构建一个简单的应用程序,其中我在 Scafold 的主体上有几个 Statefull 自定义小部件“计数器”的实例,并且我在抽屉上有一个“重置”按钮。
当点击“重置”按钮时,在所有“计数器”实例上调用“重置计数器”方法的最佳方式是什么?
我已经找到了另一种方法(从 child 调用 parent 的回调方法),但我找不到其他方法。我找到的唯一解决方案是使用 GlobalKeys,但它似乎不合适。
谢谢
最佳答案
确实对于您的案例回调函数可能是正确的。但是当您的应用程序增长时,小部件层次结构将变得越来越复杂。现在你有 Parent —> Child
关系并且传递回调函数很容易,但是当你得到 Parent —> Widget A—> Widget B—> Child
为了将回调从 Parent 传递给 Child,您还需要通过 Widget A
和 Widget B
传递它。
对我来说,您的问题听起来很适合 react 流。您可以创建一个 Sink
,当用户点击 Reset
按钮时将使用它,您的 Counter
将观察此事件并使用 处理它重置计数器
方法。您可以从 this presentation 了解更多关于响应式编程(以及其他解决问题的方法)的信息.
关于Flutter - 从 parent 那里调用一些 child 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52503373/