跨路线但在MaterialApp之后的提供商

时间:2019-08-30 17:05:52

标签: flutter flutter-provider

我有一个需要访问MaterialApp context的类,但它也需要所有路由的全局访问。

要创建全局提供程序,可以用MaterialApp包装Provider,但是这样的提供程序无权访问context。因此,我必须在MaterialApp之后提供课程。

我意识到我可以使用提供程序包装每条路由,因为它是无状态的,但是我想知道是否有更好的方法可以做到这一点。

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用builder中的onGenerateRouteMaterialApp

MaterialApp(
  builder: (context, child) {
    return Provider.value(
       value: // TO-DO use context
      child: child, 
    );
  }
) 

答案 1 :(得分:0)

您可以将材料应用程序包装在Builder中,以获取全新的环境。