Showing
1 changed file
with
8 additions
and
7 deletions
@@ -33,7 +33,7 @@ class GetDelegate extends RouterDelegate<GetPage> | @@ -33,7 +33,7 @@ class GetDelegate extends RouterDelegate<GetPage> | ||
33 | ); | 33 | ); |
34 | } | 34 | } |
35 | 35 | ||
36 | - final _resultCompleter = <Completer<Object>>[]; | 36 | + final _resultCompleter = <GetPage, Completer<Object?>>{}; |
37 | 37 | ||
38 | @override | 38 | @override |
39 | Future<void> setInitialRoutePath(GetPage configuration) async { | 39 | Future<void> setInitialRoutePath(GetPage configuration) async { |
@@ -82,14 +82,14 @@ class GetDelegate extends RouterDelegate<GetPage> | @@ -82,14 +82,14 @@ class GetDelegate extends RouterDelegate<GetPage> | ||
82 | ); | 82 | ); |
83 | } | 83 | } |
84 | 84 | ||
85 | - Future<T?> pushRoute<T extends Object>( | 85 | + Future<T?> pushRoute<T>( |
86 | GetPage route, { | 86 | GetPage route, { |
87 | bool removeUntil = false, | 87 | bool removeUntil = false, |
88 | bool replaceCurrent = false, | 88 | bool replaceCurrent = false, |
89 | bool rebuildStack = true, | 89 | bool rebuildStack = true, |
90 | }) { | 90 | }) { |
91 | - final completer = Completer<T>(); | ||
92 | - _resultCompleter.add(completer); | 91 | + final completer = Completer<T?>(); |
92 | + _resultCompleter[route] = completer; | ||
93 | 93 | ||
94 | route = route.copy(unknownRoute: _notFound()); | 94 | route = route.copy(unknownRoute: _notFound()); |
95 | assert(!(removeUntil && replaceCurrent), | 95 | assert(!(removeUntil && replaceCurrent), |
@@ -130,10 +130,11 @@ class GetDelegate extends RouterDelegate<GetPage> | @@ -130,10 +130,11 @@ class GetDelegate extends RouterDelegate<GetPage> | ||
130 | 130 | ||
131 | if (canPop()) { | 131 | if (canPop()) { |
132 | //emulate the old pop with result | 132 | //emulate the old pop with result |
133 | - final lastCompleter = _resultCompleter.removeLast(); | ||
134 | - lastCompleter.complete(result); | 133 | + final lastRoute = routes.last; |
134 | + final lastCompleter = _resultCompleter.remove(lastRoute); | ||
135 | + lastCompleter?.complete(result); | ||
135 | //route to be removed | 136 | //route to be removed |
136 | - removePage(routes.last); | 137 | + removePage(lastRoute); |
137 | return Future.value(true); | 138 | return Future.value(true); |
138 | } | 139 | } |
139 | return Future.value(false); | 140 | return Future.value(false); |
-
Please register or login to post a comment