我可以用 Provider 包装 MaterialApp 小部件吗?
Posted
技术标签:
【中文标题】我可以用 Provider 包装 MaterialApp 小部件吗?【英文标题】:Can I wrap the MaterialApp widget with the Provider? 【发布时间】:2020-01-01 15:05:34 【问题描述】:我是 Flutter 的新手,我正在尝试使用提供程序创建一个应用程序。我用 ChangeNotifierProvider 包装了 MaterialApp 小部件,该应用程序可以正常工作,我可以按预期使用该提供程序。我需要知道这样做可以吗,我会遇到任何问题吗?
Widget build(BuildContext context)
return ChangeNotifierProvider<BaseModel>(
builder: (context) =>
BaseModel(loading: false, title: "Title", isLoggedIn: false),
child: MaterialApp(
routes: <String, WidgetBuilder>
"/home": (BuildContext context) => Home(),
"/signIn": (BuildContext context) => SignIn()
,
initialRoute: "/signIn",
title: 'Flutter Demo',
theme: ThemeData(
// is not restarted.
primarySwatch: Colors.blue,
),
home: SignIn()),
);
在所有示例代码中,他们在 MaterialApp 小部件的“主页”下使用 Provider。我在提供程序中使用了 MaterialApp。
【问题讨论】:
【参考方案1】:完全没问题。没有任何问题。
【讨论】:
谢谢!你有更好的解决方案来使用提供者模式和命名路由吗? 我整天都在寻找解决方案,但没有运气以上是关于我可以用 Provider 包装 MaterialApp 小部件吗?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在多个组件上使用相同的 <Context.Provider> ?
如何使用 Next.js 仅将一些页面包装在 Context Provider 中?