小编Cac*_*cus的帖子

如何在onGenerateRoute中使用provider?

如何在 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)

dart flutter flutter-provider

5
推荐指数
1
解决办法
2179
查看次数

标签 统计

dart ×1

flutter ×1

flutter-provider ×1