of method

NavigatorState of (BuildContext context, { bool rootNavigator: false, bool nullOk: false })

The state from the closest instance of this class that encloses the given context.

Typical usage is as follows:

Navigator.of(context)
  ..pop()
  ..pop()
  ..pushNamed('/settings');

If rootNavigator is set to true, the state from the furthest instance of this class is given instead. Useful for pushing contents above all subsequent instances of Navigator.

Implementation

static NavigatorState of(
  BuildContext context, {
    bool rootNavigator = false,
    bool nullOk = false,
  }) {
  final NavigatorState navigator = rootNavigator
      ? context.rootAncestorStateOfType(const TypeMatcher<NavigatorState>())
      : context.ancestorStateOfType(const TypeMatcher<NavigatorState>());
  assert(() {
    if (navigator == null && !nullOk) {
      throw FlutterError(
        'Navigator operation requested with a context that does not include a Navigator.\n'
        'The context used to push or pop routes from the Navigator must be that of a '
        'widget that is a descendant of a Navigator widget.'
      );
    }
    return true;
  }());
  return navigator;
}