MyInherited.of(context)基本上将查看 当前上下文 的父级,以查看是否有
MyInherited实例化。
问题是:您继承的窗口小部件 在 当前上下文中实例化。
=>没有
MyInherited父母
=>崩溃
诀窍是使用不同的 上下文
。那里有很多解决方案。您可以
MyInherited在另一个小部件中实例化,以便
context您的build方法的
MyInherited父对象为a
。
或者,您可能会潜在地使用
Builder来引入一个伪造的小部件,该小部件将向您传递其上下文。
建造者的例子:
return new MyInheritedWidget( child: new Builder( builder: (context) => new Scaffold(), ),);
出于同样的原因,另一个问题是,如果您 在 路由中插入一个InheritedWidget ,它将 在 该路由 之外 不可用。
解决方案在这里很简单!把你放在
MyInheritedWidget上面
MaterialApp。
以上材料:
new MyInherited( child: new MaterialApp( // ... ),)



