-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[go_router_builder]: Handle invaild params #8405
base: main
Are you sure you want to change the base?
Conversation
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the solution sounds good to me, left some comments
@@ -79,7 +79,7 @@ extension $FamilyRouteExtension on FamilyRoute { | |||
extension $PersonRouteExtension on PersonRoute { | |||
static PersonRoute _fromState(GoRouterState state) => PersonRoute( | |||
state.pathParameters['fid']!, | |||
int.parse(state.pathParameters['pid']!), | |||
int.parse(state.pathParameters['pid']!.toString())!, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you revert the format change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
currently i cannot revert it because it was using same code gen with tryPrase case .
i will look around and try to resolve this
packages/go_router_builder/test_inputs/iterable_with_default_value.dart.expect
Outdated
Show resolved
Hide resolved
@@ -345,7 +389,7 @@ abstract class _TypeHelperWithHelper extends _TypeHelper { | |||
'${helperName(paramType)})'; | |||
} | |||
return '${helperName(paramType)}' | |||
'(state.${_stateValueAccess(parameterElement, pathParameters)})'; | |||
'(state.${_stateValueAccess(parameterElement, pathParameters)}.toString())!'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this possible to not be a string?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@chunhtai i dont think it can because _stateValueAccess will get data from a map <String,String> that will be a nullable string . i have to make to .toString()
to make sure it a not null string to able using tryParse
or parse
param: state.uri.queryParametersAll['param']?.map(int.parse) ?? | ||
param: (state.uri.queryParametersAll['param'] | ||
?.map(int.parse) | ||
?.where((e) => e != null) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think ?
after the first ?.map
may cause lint error as it is not needed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it wont because it not different with previous code . the only thing different is i wrap it to ()
and add ?.where((e) => e != null)
Fixed handling of invalid parameters
Fix: flutter/flutter#160894 (comment)
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style, or this PR is exempt from CHANGELOG changes.///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.