popUntil method
- RoutePredicate predicate
Calls pop repeatedly until the predicate returns true.
The predicate may be applied to the same route more than once if Route.willHandlePopInternally is true.
To pop until a route with a certain name, use the RoutePredicate returned from ModalRoute.withName.
The routes are closed with null as their return
value.
See pop for more details of the semantics of popping a route.
Typical usage is as follows:
link
void _doLogout() {
navigator.popUntil(ModalRoute.withName('/login'));
}
Implementation
void popUntil(RoutePredicate predicate) {
_RouteEntry? candidate = _lastRouteEntryWhereOrNull(_RouteEntry.isPresentPredicate);
while (candidate != null) {
if (predicate(candidate.route)) {
return;
}
pop();
candidate = _lastRouteEntryWhereOrNull(_RouteEntry.isPresentPredicate);
}
}