如何在 flutter 中访问 parent 中 child 小部件的数据?

How to access data of child widget in parent in flutter?

我想知道 parent 小部件中 child(或 child 的 child)小部件中某个字段的值,仅当我需要时去了解一下。
在这种情况下,使用 CallbackInheritedWidget/Provider 不起作用,因为每次值发生变化时它都会向我提供信息child。当 parent 中有动作时,我只需要 child 的值。所以,监听所有的变化是一种开销。
另一种选择是使用 key 从 child 中获取信息,但是 children 可以是多个,因此必须创建那么多密钥,并且不知何故将它们附加到 children。而且钥匙有点贵
另一种选择是存储 children 的实例并从中获取价值。

对于一项简单的任务来说,每个选项似乎都有些矫枉过正。我赞成关键方法,因为它给人一种它们是为这些类型的场景创建的感觉。对于这种情况,有谁知道更好的方法吗?

一个简单的用例是:
想象一下 parent 中间有一个 PageView 和一个下一步按钮。中间的页面包含一个可更改其值的滑块。当我们按下下一步时,我们想知道滑块的最终值是多少。

它看起来这么难是有原因的:你不应该。

小部件有意非常有限,以强制执行 uni-directional data-flow,这对于大型应用程序的可维护性至关重要。

您应该 "lift the state up" 到 inherited-widgets 和类似的模式,而不是读取后代的状态。