AutoRoute navigatorKey currentState 为 null

问题描述 投票:0回答:1

我正在使用 auto_route 进行导航。我已将应用程序从旧的 Flutter 版本更新为 Flutter 3。应用程序导航可与上下文配合使用,但我想使用路径或命名路由进行导航。它不起作用,因为 navigatorKey 为 null 并且我无法访问 currentState。

我正在做的是:

class GlobalKeys{
final GlobalKey<NavigatorState> navigatorKey = new GlobalKey<NavigatorState>();
}

但我不确定在主文件的 MaterialApp.router 中的哪里提供这个。我尝试过类似下面的方法:

MaterialApp.router(
      key: GlobalKeys.navigatorKey,
)

我的 currentState 为 null,因此我无法导航

dynamic redirectTo(String path) async {
      navigatorKey.currentState!.pushNamed('$path');
}

作为 auto_route 包提供的另一个解决方案,我也尝试了下面的代码,但它什么也没做,因为它执行了语句,但没有任何反应。它甚至不会抛出任何错误。

getIt<AppRouter>().pushNamed('$path');
flutter navigation auto-route
1个回答
0
投票

您应该使用 navigatorKey 属性而不是 key 属性。但不幸的是 navigatorKey 在 MaterialApp.router() 构造函数中不可用。它可以在 MaterialApp() 构造函数中使用。

© www.soinside.com 2019 - 2024. All rights reserved.