Flutter Auto_Route从5.0.1升级至7.7.1的路由名称问题
解决AutoRoute 7.7.1升级后路由配置中
Auth.page未定义的问题 问题场景
接手一个已使用auto_route的Flutter项目,将插件升级至7.7.1版本,用Android Studio的AutoRoute-helper工具完成大部分适配后,遇到如下报错:
在路由文件中配置:
AutoRoute(path: '/auth/', page: Auth.page, meta: {'name': 'Authentication'})
提示错误:The getter 'page' isn't defined for the type 'Auth'
已给Auth页面添加@RoutePage()注解,且执行了flutter packages pub run build_runner build命令,但路由仍无法识别.page或.name属性,按常规教程操作后问题未解决。
解决方法
自动生成的router.gr.dart文件中,会为每个带@RoutePage()注解的页面生成一个带Route后缀的类(比如Auth对应的AuthRoute),需要从这个文件导入该类,然后使用生成类的属性来配置路由:
- 导入生成的路由类:
import 'package:your_project_name/router.gr.dart';
- 修改路由配置代码:
AutoRoute(path: '/auth/', page: AuthRoute.page, meta: {'name': 'Authentication'})
如果是需要通过路由名称跳转,直接使用AuthRoute.name即可,比如:
context.pushRoute(AuthRoute()); // 或者用名称跳转 context.pushNamed(AuthRoute.name);
内容的提问来源于stack exchange,提问作者Zannabrighel
相关产品推荐
相关产品推荐

