Flutter 在main.dart中使用导航器获取当前上下文
是否有机会在main.dart上获取当前上下文?我正在使用共享意图侦听applinks,需要重定向以指定页面。但我不知道如何使用上下文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
@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