Committed by
GitHub
Merge pull request #1814 from xiangzy1/master
fix: currentRoute wrong when push page in dialog
Showing
1 changed file
with
7 additions
and
2 deletions
@@ -112,12 +112,15 @@ class GetObserver extends NavigatorObserver { | @@ -112,12 +112,15 @@ class GetObserver extends NavigatorObserver { | ||
112 | if (route is PageRoute) { | 112 | if (route is PageRoute) { |
113 | value.current = newRoute.name ?? ''; | 113 | value.current = newRoute.name ?? ''; |
114 | } | 114 | } |
115 | + final previousRouteName = _extractRouteName(previousRoute); | ||
116 | + if (previousRouteName != null) { | ||
117 | + value.previous = previousRouteName; | ||
118 | + } | ||
115 | 119 | ||
116 | value.args = route.settings.arguments; | 120 | value.args = route.settings.arguments; |
117 | value.route = route; | 121 | value.route = route; |
118 | value.isBack = false; | 122 | value.isBack = false; |
119 | value.removed = ''; | 123 | value.removed = ''; |
120 | - value.previous = _extractRouteName(previousRoute) ?? ''; | ||
121 | value.isSnackbar = newRoute.isSnackbar ? true : value.isSnackbar ?? false; | 124 | value.isSnackbar = newRoute.isSnackbar ? true : value.isSnackbar ?? false; |
122 | value.isBottomSheet = | 125 | value.isBottomSheet = |
123 | newRoute.isBottomSheet ? true : value.isBottomSheet ?? false; | 126 | newRoute.isBottomSheet ? true : value.isBottomSheet ?? false; |
@@ -154,13 +157,15 @@ class GetObserver extends NavigatorObserver { | @@ -154,13 +157,15 @@ class GetObserver extends NavigatorObserver { | ||
154 | // Only PageRoute is allowed to change current value | 157 | // Only PageRoute is allowed to change current value |
155 | if (previousRoute is PageRoute) { | 158 | if (previousRoute is PageRoute) { |
156 | value.current = _extractRouteName(previousRoute) ?? ''; | 159 | value.current = _extractRouteName(previousRoute) ?? ''; |
160 | + value.previous = newRoute.name ?? ''; | ||
161 | + } else if (value.previous.isNotEmpty) { | ||
162 | + value.current = value.previous; | ||
157 | } | 163 | } |
158 | 164 | ||
159 | value.args = previousRoute?.settings.arguments; | 165 | value.args = previousRoute?.settings.arguments; |
160 | value.route = previousRoute; | 166 | value.route = previousRoute; |
161 | value.isBack = true; | 167 | value.isBack = true; |
162 | value.removed = ''; | 168 | value.removed = ''; |
163 | - value.previous = newRoute.name ?? ''; | ||
164 | value.isSnackbar = newRoute.isSnackbar; | 169 | value.isSnackbar = newRoute.isSnackbar; |
165 | value.isBottomSheet = newRoute.isBottomSheet; | 170 | value.isBottomSheet = newRoute.isBottomSheet; |
166 | value.isDialog = newRoute.isDialog; | 171 | value.isDialog = newRoute.isDialog; |
-
Please register or login to post a comment