最佳答案
什么是正确的使用方法继承小部件?到目前为止,我理解它为您提供了沿着 Widget 树传播数据的机会。在极端情况下,如果你把它放在 RootWidget 中,它将可以从所有路由树中的所有 Widget 访问,这很好,因为我必须让我的视图模型/模型可访问我的 Widget,而不必求助于全局或单例。
但继承的 Widget 是不可变的,那么我如何更新它呢?更重要的是,我的有状态部件是如何被触发来重建它们的子树的?
不幸的是,这里的文档非常不清楚,经过大量讨论,似乎没有人真正知道使用它的正确方法。
我引用 Brian Egan 的一句话:
是的,我认为这是一种向下传播数据的方法 来自 API 文档的令人困惑的信息:
”以这种方式引用继承的小部件时,将导致 当继承的小部件本身改变状态时,消费者可以重新构建。”
当我第一次读到这个的时候,我想:
我可以将一些数据填充到 Heritage itedWidget 中,然后再对其进行变异。 当变异发生的时候,它会重建所有的小部件 参考我的继承小部件我发现:
为了改变一个 Heritage itedWidget 的状态,您需要换行 然后实际改变状态 并将此数据传递给 将数据传递给它的所有子级。然而,在这种情况下,它 似乎可以重新构建 StateftionWidget 下面的整个树,而不是 仅仅是引用 Heritage itedWidget 的 Widgets,对吗? 或者它知道如何跳过引用 如果 updateShouldNotify 返回 false,继承 Widget?