Flutter 在main.dart中使用导航器获取当前上下文

Flutter 在main.dart中使用导航器获取当前上下文,flutter,navigator,Flutter,Navigator,是否有机会在main.dart上获取当前上下文?我正在使用共享意图侦听applinks,需要重定向以指定页面。但我不知道如何使用上下文 @override Widget build(BuildContext context) { ReceiveSharingIntent.getInitialText().then((String val){ //some logic Navigator.pushNamed(context, ....); }); return

是否有机会在main.dart上获取当前上下文?我正在使用共享意图侦听applinks,需要重定向以指定页面。但我不知道如何使用上下文

  @override
  Widget build(BuildContext context) {

  ReceiveSharingIntent.getInitialText().then((String val){
   //some logic
   Navigator.pushNamed(context, ....);
  });

  return MaterialApp(
        title: 'MyApp',
        initialRoute: Routes.home,
        onGenerateRoute: (RouteSettings settings) {
          switch (settings.name) {
             case Routes.home:
             return SimplePageRoute(builder: (context) => HomeScreen());
             break;
          }
        }
   );
  }
我犯了这个错误

未处理的异常:请求的导航器操作的上下文为 不包括导航器


好的,我明白了,但是我怎样才能得到这个地方的当前上下文呢?

好的,我用navigatorKey修复了它

  final GlobalKey<NavigatorState> navigatorKey = new GlobalKey<NavigatorState>();

  @override
  Widget build(BuildContext context) {

  ReceiveSharingIntent.getInitialText().then((String val){
   //some logic
   navigatorKey.currentState.pushNamed(Routes.myPage);
  });

  return MaterialApp(
        title: 'MyApp',
        initialRoute: Routes.home,
        navigatorKey: navigatorKey,
        onGenerateRoute: (RouteSettings settings) {
           switch (settings.name) {
           case Routes.home:
           return SimplePageRoute(builder: (context) => HomeScreen());
           break;
          }
        }
   );
  }
final GlobalKey navigatorKey=new GlobalKey();
@凌驾
小部件构建(构建上下文){
ReceiveSharingContent.getInitialText().then((字符串val){
//一些逻辑
navigatorKey.currentState.pushNamed(Routes.myPage);
});
返回材料PP(
标题:“MyApp”,
initialRoute:Routes.home,
导航工作:导航工作,
onGenerateRoute:(路由设置){
开关(设置.名称){
case.home:
返回SimplePageRoute(生成器:(上下文)=>HomeScreen());
打破
}
}
);
}

为什么要在运行materialApp之前设置上下文?因为我需要设置一些全局的基本侦听器,我认为最好的地方是main.dart