push<T> method

Future<T?> push<T>(
  1. Route<T> route
)

Pushes a route onto the navigation stack.

Returns a Future that completes with the result value when the route is popped.

Implementation

Future<T?> push<T>(Route<T> route) {
  final completer = Completer<T?>();
  route.completer = completer;
  _routeCompleters[route] = completer;

  final previousRoute = _routes.isNotEmpty ? _routes.last : null;
  _installRoute(route);

  setState(() {});

  for (final observer in widget.observers) {
    observer.didPush(route, previousRoute);
  }

  return completer.future;
}