Joe*_*esh 10 navigator flutter
我在这里找到了中间件的“GlobalKey NavigatorState”解决方案,但无法克服错误“The method 'pushedNamed' was called on null”。然后我找到了这个替代解决方案来使用单独的类和静态变量来解决这个问题,但它产生了同样的错误。 我真正需要的是一个非常基本的设置示例以及如何在其他地方调用“pushedNamed”函数。
当前代码
在单独的文件夹中初始化 GlobalKey:
class NavKey{
static final navKey = new GlobalKey<NavigatorState>();
}
Run Code Online (Sandbox Code Playgroud)
主要.dart:
import 'package:eumag/assets/tools/route_navigation_constants.dart';
...
@override
Widget build(BuildContext context) {
return StoreProvider<AppState>(
store: store,
child: MaterialApp(
theme: ThemeData.dark(),
navigatorKey: NavKey.navKey,
routes: <String, WidgetBuilder>{
ROUTE_LOGIN_PAGE: (BuildContext context) => LoginPage(store),
ROUTE_MAIN_PAGE: (BuildContext context) => MainPage(store),
},
home: StoreBuilder<AppState>(
builder: (BuildContext context, Store<AppState> store) =>
LoginPage(store),
),
),
);
}
Run Code Online (Sandbox Code Playgroud)
中间件.dart:
import 'package:eumag/assets/tools/route_navigation_constants.dart';
void appStateMiddleware (Store<AppState> store, action, NextDispatcher next) async{
final navigatorKey = NavKey.navKey;
if (action is UpdateRoomStatus){
navigatorKey.currentState.pushNamed(ROUTE_MAIN_PAGE);
store.dispatch(createSocketConnection);
}
next(action);
}
Run Code Online (Sandbox Code Playgroud)
小智 7
有同样的问题,文档中的最后一行似乎给出了修复的提示。
您显然不能使用routesanavigatorKey并且必须使用onGenerateRoute.
| 归档时间: |
|
| 查看次数: |
8225 次 |
| 最近记录: |