以前使用MaterialApp
时,可以使用位于MaterialApp widget
上的NavigatorKey
设置GlobalContext
。
但是现在看起来这个替代方案不再可行了,我有这个结构,遵循Navigator 2.0
Widget build(BuildContext context, WidgetRef ref) {
return MaterialApp.router(
debugShowCheckedModeBanner: false,
restorationScopeId: 'app',
localizationsDelegates: const [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: AppLocalizations.supportedLocales,
onGenerateTitle: (BuildContext context) =>
AppLocalizations.of(context)!.appTitle,
routeInformationParser: const RoutemasterParser(),
routeInformationProvider: routeInformationProvider,
routerDelegate: introductionRouteMap(context, ref));
}
现在没有任何NavigatorKey,所以我的问题是,如何使用MaterialApp.router
设置GlobalContext?
4条答案
按热度按时间qnyhuwrf1#
您可以在RouterDelegate中添加NavigatorKey(未测试),对于需要GoRouter的用户,可以在GoRouter构造函数中添加NavigatorKey。
zdwk9cvp2#
这是该问题的替代解决方案:
添加以下内容:
这里是这个包的Link请看。
q35jwt9p3#
如果您只需要一个GlobalContext,则可以使用
scaffoldMessengerKey
,它用于显示小吃店。注意:此
BuildContext
不适用于导航访问全局上下文的步骤
q7solyqu4#
导航器2.0使Flutter的路由系统更具动态性,但以前在材料应用程序或库比蒂诺应用程序中传递的一些信息已被删除,必须使用模块化自己的支持方法对其进行配置。
在您的情况下,只需添加:
x1月1x日之前