Flutter Auto route error "...must be that of a widget that is a descendant of an AutoRouter widget."
在使用auto_route
包时,确保你的应用的根widget被AutoRouter
包裹
问题代码:
builder: (BuildContext context, themeProvider, child) {
return MaterialApp(
home: Scaffold(
endDrawer: MenuDrawer(),
body: MaterialApp.router(
routerConfig: _appRouter.config(),
),
), //end Scaffold
); /
OutlinedButton(
child: const Text("ABOUT PAGE"),
onPressed: () {
context.router.pushNamed('/about');
},
),
按完上面的按钮出现下面的报错:
══╡ EXCEPTION CAUGHT BY GESTURE
The following assertion was thrown while handling a gesture: AutoRouter operation requested with a context that does not include an AutoRouter. The context used to retrieve the Router must be that of a widget that is a descendant of an AutoRouter widget.
解决:
MaterialApp.router要在
MaterialApp外面
@override
Widget build(BuildContext context) {
return MaterialApp.router(
routerConfig: _appRouter.config(),
builder: (context, router) {
return Scaffold(
endDrawer: MenuDrawer(),
body: router,
);
},
);
}