【发布时间】:2021-09-12 21:24:28
【问题描述】:
我在这个链接中找到了以下错误的解释:Navigator operation requested with a context that does not include a Navigator 我试图申请我的问题,但我无法解决问题。
当我单击 NavigationBar 类中的按钮时,出现此错误:
在处理手势时引发以下断言:使用不包含导航器的上下文请求导航器操作。用于从 Navigator 推送或弹出路由的上下文必须是作为 Navigator 小部件后代的小部件的上下文。
void main() async {
await Firebase.initializeApp();
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
AppRouter appRouter = AppRouter(
routes: AppRoutes.routes,
notFoundHandler: AppRoutes.routeNotFoundHandler,
);
appRouter.setupRoutes();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'abc',
theme: ThemeData(
primarySwatch: Colors.blue,
),
builder: (_, child) => AppView(
child: child,
),
onGenerateRoute: AppRouter.router.generator,
);
}
}
class AppView extends StatelessWidget {
final Widget child;
const AppView({@required this.child});
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [NavigationBar(), Expanded(child: child)],
),
);
}
}
class NavigationBar extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
child: MaterialButton(
child: Text(
"Home",
),
onPressed: () {
AppRouter.router
.navigateTo(context, AppRoutes.saticilarRoute.route);
},
),
),
//TODO
],
),
);
}
}
【问题讨论】:
标签: flutter