diff --git a/packages/go_router_builder/CHANGELOG.md b/packages/go_router_builder/CHANGELOG.md index 6b864002673..71f07f91919 100644 --- a/packages/go_router_builder/CHANGELOG.md +++ b/packages/go_router_builder/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.8.2 + +- Fixes issue when using query parameters that caused a nullable error + ## 2.8.1 - Fixes an issue when navigate to router with invalid params diff --git a/packages/go_router_builder/lib/src/type_helpers.dart b/packages/go_router_builder/lib/src/type_helpers.dart index 6a13c146930..e5a0756c346 100644 --- a/packages/go_router_builder/lib/src/type_helpers.dart +++ b/packages/go_router_builder/lib/src/type_helpers.dart @@ -115,11 +115,13 @@ String _stateValueAccess(ParameterElement element, Set pathParameters) { } late String access; + final String suffix = + !element.type.isNullableType && !element.hasDefaultValue ? '!' : ''; if (pathParameters.contains(element.name)) { - access = - 'pathParameters[${escapeDartString(element.name)}]${element.isRequired ? '!' : ''}'; + access = 'pathParameters[${escapeDartString(element.name)}]$suffix'; } else { - access = 'uri.queryParameters[${escapeDartString(element.name.kebab)}]'; + access = + 'uri.queryParameters[${escapeDartString(element.name.kebab)}]$suffix'; } return access; diff --git a/packages/go_router_builder/pubspec.yaml b/packages/go_router_builder/pubspec.yaml index 6ef52a5819b..14312ddf005 100644 --- a/packages/go_router_builder/pubspec.yaml +++ b/packages/go_router_builder/pubspec.yaml @@ -2,7 +2,7 @@ name: go_router_builder description: >- A builder that supports generated strongly-typed route helpers for package:go_router -version: 2.8.1 +version: 2.8.2 repository: https://github.com/flutter/packages/tree/main/packages/go_router_builder issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+go_router_builder%22 diff --git a/packages/go_router_builder/test_inputs/required_query_parameter.dart.expect b/packages/go_router_builder/test_inputs/required_query_parameter.dart.expect index 1b62bee0e52..aac229ed118 100644 --- a/packages/go_router_builder/test_inputs/required_query_parameter.dart.expect +++ b/packages/go_router_builder/test_inputs/required_query_parameter.dart.expect @@ -7,7 +7,7 @@ extension $NonNullableRequiredParamNotInPathExtension on NonNullableRequiredParamNotInPath { static NonNullableRequiredParamNotInPath _fromState(GoRouterState state) => NonNullableRequiredParamNotInPath( - id: int.parse(state.uri.queryParameters['id'])!, + id: int.parse(state.uri.queryParameters['id']!)!, ); String get location => GoRouteData.$location(