dispose method

  1. @override
void dispose()
override

Called when this state is permanently removed from the tree.

Implementation

@override
void dispose() {
  // Dispose all routes.
  for (final route in _routes.reversed.toList()) {
    route.dispose();
  }
  _routes.clear();
  _entryKeys.clear();
  // Complete any pending futures with null.
  for (final completer in _routeCompleters.values) {
    if (!completer.isCompleted) {
      completer.complete(null);
    }
  }
  _routeCompleters.clear();
  // Detach observers.
  for (final observer in widget.observers) {
    observer.navigator = null;
  }
  super.dispose();
}