如何在 onGenerateRoute 中使用我的 UserProvider?我想检查用户是否是使用 UserProvider.isLogged() 的记录器,但是当我尝试获取 Userprovider 时,我必须传递路由器中没有的上下文。
我已经尝试将generateRoute更改为非静态并通过构造函数将上下文传递给路由器,但它会抛出错误。
主程序.dart
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: <SingleChildCloneableWidget>[
ChangeNotifierProvider(builder: (_) => BottomNavigationBarProvider()),
ChangeNotifierProvider(builder: (_) => UserProvider()),
],
child: MaterialApp(
initialRoute: '/',
onGenerateRoute: Router.generateRoute,
title: 'Title,
theme: ThemeData(
primarySwatch: Colors.blue,
),
),);
}
}
Run Code Online (Sandbox Code Playgroud)
路由器.dart
class Router {
static Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case '/':
return MaterialPageRoute(builder: (_) => HomePage());
break;
case '/login':
return MaterialPageRoute(builder: (_) => LoginPage()); …Run Code Online (Sandbox Code Playgroud)