Flutter 如何在Flatter中访问父窗口小部件中的子窗口小部件数据?

Flutter 如何在Flatter中访问父窗口小部件中的子窗口小部件数据?,flutter,dart,inherited-widget,Flutter,Dart,Inherited Widget,我想知道父窗口小部件中的子窗口小部件(或子窗口小部件的子窗口小部件)中某个字段的值,只有在我想知道的时候才知道。 在这种情况下,使用回调或继承小部件/提供程序不起作用,因为每次子对象中的值发生变化时,它都会向我提供信息。我只需要孩子的值,当父母中有一个动作时。因此,倾听所有更改是一项开销。 另一个选项是使用键从子项获取信息,但子项可以是多个,因此必须创建这些多个键并以某种方式将它们附加到子项。而且钥匙有点贵。 另一种选择是存储子对象的实例并从中获取价值 对于一项简单的任务来说,每一个选项都似乎是

我想知道父窗口小部件中的子窗口小部件(或子窗口小部件的子窗口小部件)中某个字段的值,只有在我想知道的时候才知道。
在这种情况下,使用回调继承小部件/提供程序不起作用,因为每次子对象中的值发生变化时,它都会向我提供信息。我只需要孩子的值,当父母中有一个动作时。因此,倾听所有更改是一项开销。
另一个选项是使用从子项获取信息,但子项可以是多个,因此必须创建这些多个键并以某种方式将它们附加到子项。而且钥匙有点贵。
另一种选择是存储子对象的实例并从中获取价值

对于一项简单的任务来说,每一个选项都似乎是多余的。我倾向于关键方法,因为它给人一种感觉,它们是为这些类型的场景而创建的。有没有人对这种情况更了解

一个简单的用例是:

想象一下,家长在中间有一个页面浏览和下一个按钮。中间的页面包含一个改变其值的滑块。当我们按下“下一步”时,我们想知道滑块的最终值是多少

这看起来很难的原因是:你不应该这样做


widget被有意地限制为执行单向数据流,这对于大型应用程序的可维护性至关重要


与其读取子部件的状态,不如通过继承的小部件和类似模式“提升状态”。

您可以对子部件中的一个变量使用static直接访问值。我不明白为什么提供者/回调不能工作。我在我的孩子身上使用scopedModel插件(类似于提供者),我可以在我的孩子小部件中获得我更新的任何信息。你可以阅读我写的帖子:@FadhliS使变量成为静态意味着,每个人都可以访问它们。这不是我想要的行为。谢谢,@diegoveloper,我做到了。这是一篇很有帮助的帖子。尽管这个问题的使用案例有点不同,“小部件被有意地限制为强制执行单向数据流,这对于大型应用程序的可维护性至关重要”。你能详细说明一下吗?