Committed by
xiangzy1
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