Flutter更新后GoRouterState无queryParameters属性报错求助
问题:Flutter更新后GoRouterState缺少queryParameters方法导致Xcode构建失败
之前使用Xcode测试应用一切正常,更新Flutter后出现报错,尝试论坛上所有解决方案仍未解决,无法为iPhone 15 Pro Max模拟器构建并启动应用。
报错信息
Error (Xcode): lib/flutter_flow/nav/nav.dart:383:14: Error: The getter 'queryParameters' isn't defined for the class 'GoRouterState'.
报错代码片段
extension _GoRouterStateExtensions on GoRouterState { Map<String, dynamic> get extraMap => extra != null ? extra as Map<String, dynamic> : {}; Map<String, dynamic> get allParams => <String, dynamic>{} ..addAll(pathParameters) ..addAll(queryParameters) ..addAll(extraMap); TransitionInfo get transitionInfo => extraMap.containsKey(kTransitionInfoKey) ? extraMap[kTransitionInfoKey] as TransitionInfo : TransitionInfo.appDefault(); } class FFParameters { FFParameters(this.state, [this.asyncParams = const {}]); final GoRouterState state; final Map<String, Future<dynamic> Function(String)> asyncParams; Map<String, dynamic> futureParamValues = {};
flutter pub get 执行结果
Resolving dependencies... (1.4s) _fe_analyzer_shared 61.0.0 (65.0.0 available) analyzer 5.13.0 (6.3.0 available) flutter_facebook_auth_platform_interface 3.2.0 (5.0.0 available) flutter_facebook_auth_web 3.2.0 (5.0.0 available) google_api_headers 1.6.0 (3.1.0 available) google_fonts 4.0.4 (6.1.0 available) http 0.13.6 (1.1.1 available) material_color_utilities 0.5.0 (0.8.0 available) meta 1.10.0 (1.11.0 available) package_info_plus 4.2.0 (5.0.1 available) pigeon 11.0.1 (14.0.0 available) shared_preferences_ios 2.1.1 (discontinued replaced by shared_preferences_foundation) uuid 3.0.7 (4.2.1 available) web 0.3.0 (0.4.0 available) Got dependencies! 1 package is discontinued. 13 packages have newer versions incompatible with dependency constraints. Try `flutter pub outdated` for more information.
flutter pub outdated 执行结果
Showing outdated packages. indicates versions that are not the latest available. Package Name Current Upgradable Resolvable Latest direct dependencies: google_fonts *4.0.4 *4.0.4 *4.0.4 6.1.0 package_info_plus *4.2.0 *4.2.0 *4.2.0 5.0.1 dev_dependencies: all up-to-date. You are already using the newest resolvable versions listed in the 'Resolvable' column. Newer versions, listed in 'Latest', may not be mutually compatible.
排查修复步骤
- 确认GoRouter版本兼容性:报错源于GoRouter的API变更,
GoRouterState的queryParameters方法在新版本中被移除,需检查项目中go_router的版本是否适配当前Flutter SDK。可在pubspec.yaml中锁定或升级go_router到兼容版本。 - 替换API调用:若无法升级
go_router,可将代码中的queryParameters替换为uri.queryParameters(GoRouterState自带uri属性,可通过它获取查询参数),修改后的代码如下:Map<String, dynamic> get allParams => <String, dynamic>{} ..addAll(pathParameters) ..addAll(uri.queryParameters) ..addAll(extraMap); - 清理缓存并重建:执行以下命令清除缓存,避免旧依赖残留影响构建:
flutter clean flutter pub get cd ios && pod install && cd .. flutter run - 替换废弃依赖:
shared_preferences_ios已被废弃,需在pubspec.yaml中替换为shared_preferences_foundation:
同时移除shared_preferences_foundation: ^2.3.4shared_preferences_ios的依赖声明。 - 逐步升级兼容依赖:对于无法直接升级的依赖(如
google_fonts、package_info_plus),可尝试逐个升级,每次升级后执行flutter pub get并测试,避免版本冲突。
内容的提问来源于stack exchange,提问作者Boardal
相关产品推荐
相关产品推荐

