在Flutter中,是否有一种方法可以在多个PageRoute中使用InheritedWidget?

5
我在应用程序的根部有一个InheritedWidget,基本上就在第一个Scaffold的第一个构建函数的顶部。从第一页的所有子小部件中使用.of(context)函数可以很好地引用小部件。如果我在Navigator堆栈上推送另一页,则InheritedWidget.of()调用将失败,正如我认为它应该一样。有没有一种方法可以共享访问此小部件?我正在尝试避免不必要地向下传递小部件。ScopedModel也有同样的限制。我考虑传递上下文变量到树下面,但这听起来不对,也无法解决问题。

1
可能是如何将继承的小部件传递给整个Material App的重复问题。 - Richard Heap
1
可能是如何将继承的小部件传递给整个Material App的重复问题。 - diegoveloper
1个回答

9
您应该将根widget包装在其中,例如您的MaterialApp
MyInheritedWidget(
      child: MaterialApp(
        home: home))

它应该给我相同的结果,因为所有小部件都是从此主脚手架下调用的。这是我返回的第一个小部件。 - ThinkDigital
这似乎已经解决了!上次我尝试时它没有起作用,但也许有什么不同,谢谢。 - ThinkDigital
1
当您使用它来包装您的Material App时,它将允许从导航器堆栈中访问继承的小部件,从而解决您的问题。 - Shady Aziza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接