[go_router] fix Popping state and re-rendering scaffold at the same time doesn't update the URL on web [new] #8352
+338
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Change the 3 files of lib and add a example, because issue flutter/flutter#150312
The reason for the issue is when call
counterStream.increment();
will notifynotifyListeners()
ofStreamListener
, and finally affect_handleRouteInformationProviderNotification
of_RouterState
inpackages/flutter/lib/src/widgets/router.dart
.When pop should not call
_handleRouteInformationProviderNotification
otherwise will be path wrong.because the value of
GoRouteInformationProvider
is not the latest.Solution:
always make the value of
GoRouteInformationProvider
knew the latestRouteInformation
[but not to donotifyListeners()
].i don't know if adding
pop
toNavigatingType
is reasonable, if any place needs to be changed please tell me.Result:
After changed, the issue been solved and all the others pop not be affect such as drawer/dialog/bottomsheet, See the video below.
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.///
).