redirect method

  1. @protected
void redirect(
  1. PageRouteInfo route, {
  2. required NavigationResolver resolver,
})

Implementation

@protected
void redirect(PageRouteInfo route,
    {required NavigationResolver resolver}) async {
  if (_redirectResolver == resolver) return;
  _redirectResolver = resolver;
  assert(!resolver.isResolved, 'Resolver is already completed');
  final router = resolver._router._findStackScope(route);
  router.push(route).then((_) {
    if (!resolver.isResolved) {
      resolver.next(false);
    }
    _redirectResolver = null;
  });
  await resolver._completer.future;
  if (router.current.name == route.routeName) {
    router.markUrlStateForReplace();
  }
  router.removeWhere((r) => r.name == route.routeName, notify: false);
  _redirectResolver = null;
}