Repository navigation
enable Navigator.of to accept a navigator element and return its stat… - #58259
Merged
Merged
Conversation
goderbauer
reviewed
Jun 3, 2020
| final NavigatorState navigator = rootNavigator | ||
| ? context.findRootAncestorStateOfType<NavigatorState>() | ||
| : context.findAncestorStateOfType<NavigatorState>(); | ||
| // Handles the case where the input context is a navigator element. |
Member
There was a problem hiding this comment.
/cc @gspencergoog I seem to remember that you recently also ran into the problem that "self" is not included when you look up ancestors. How did we solve the problem there again?
Contributor
There was a problem hiding this comment.
I created _getAncestor to fetch the parent so that I can start searching using getElementForInheritedWidgetOfExactType from the parent element, which avoids returning itself just by starting the search with the parent element.
Contributor
There was a problem hiding this comment.
And my problem was the opposite: getElementForInheritedWidgetOfExactType can return self, and I didn't want it to.
Comment on lines
+2136
to
+2137
| if (context is StatefulElement) { | ||
| if (context.state is NavigatorState) |
Member
There was a problem hiding this comment.
I believe these two ifs can be combined into one.
zljj0818
pushed a commit
to zljj0818/flutter
that referenced
this pull request
Jun 22, 2020
mono0926
added a commit
to mono0926/flutter_mono_kit
that referenced
this pull request
Jul 31, 2020
mono0926
added a commit
to mono0926/flutter_mono_kit
that referenced
this pull request
Aug 7, 2020
mingwandroid
pushed a commit
to mingwandroid/flutter
that referenced
this pull request
Sep 6, 2020
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
…e directly
Description
Navigator.of uses context.findAncestorStateOfType which does not handle the case where the context is a navigator element. this pr fixes it.
Related Issues
Fixes #34105
Tests
I added the following tests:
See files
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes (
[x]). This will ensure a smooth and quick review process.///).flutter analyze --flutter-repo) does not report any problems on my PR.Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.