【问题标题】:Flutter - Call a method on some children from parentFlutter - 从父级调用一些子级的方法
【发布时间】:2019-03-01 09:13:30
【问题描述】:

我正在发现 Flutter,我真的很喜欢它。 我正在构建一个简单的应用程序,在该应用程序中,支架主体上有几个 Statefull 自定义小部件“计数器”实例,并且抽屉上有一个“重置”按钮。

点击“重置”按钮时,在所有“计数器”实例上调用“重置计数器”方法的最佳方法是什么?

我已经管理了另一种方式(从孩子调用父母的回调方法),但我找不到其他方式。我找到的唯一解决方案是使用 GlobalKeys,但它似乎不合适。

谢谢

【问题讨论】:

标签: flutter


【解决方案1】:

确实,您的案例回调函数可能是正确的。但是当您的应用程序增长时,小部件层次结构将变得越来越复杂。现在你有Parent —> Child 关系并且很容易传递回调函数,但是当你得到Parent —> Widget A—> Widget B—> Child 情况以便将回调从Parent 传递给Child 时,你需要通过Widget A 和@987654325 传递它@ 也一样。

对我来说,您的问题听起来很适合反应式流。您可以创建一个Sink,当用户点击Reset 按钮时将使用它,您的Counter 将观察此事件并使用resetCounter 方法处理它。您可以从this presentation 了解更多关于响应式编程(以及解决问题的其他方法)的信息。

【讨论】:

  • 谢谢@olexas,我想这就是我要找的东西,我会调查它并回到这里。谢谢!
  • 你绝对把我引向了正确的方向,谢谢!
【解决方案2】:

还有另一种方法可以扩展 ChangeNotifier,并添加子作为侦听器。一旦父级执行操作,您可以调用 notifyChange 来触发子小部件回调。

【讨论】:

    猜你喜欢
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    相关资源
    最近更新 更多