onUnknownRoute static method

Route? onUnknownRoute(
  1. RouteSettings settings, {
  2. FlutterErrorDetails? details,
  3. String? header,
  4. String? message,
  5. StackTrace? stack,
  6. String? library,
  7. String? description,
})

Using the low-level primitives to avoid an unstable state

Implementation

static Route<dynamic>? onUnknownRoute(
  RouteSettings settings, {
  FlutterErrorDetails? details,
  String? header,
  String? message,
  StackTrace? stack,
  String? library,
  String? description,
}) {
  //
  if (details == null) {
    //
    message ??= 'Route "${settings.name}" not found!';
    description ??=
        'The onUnknownRoute callback returned this screen instead.';
    details = FlutterErrorDetails(
      exception: Exception(message),
      stack: stack,
      library: library,
      context: ErrorDescription(description),
    );
  }
  final widget = displayErrorWidget(details, header: header ?? '404');
  Route<dynamic> route;
  if (App.useMaterial) {
    route = MaterialPageRoute<dynamic>(
        builder: (_) => widget, settings: settings);
  } else {
    route = CupertinoPageRoute<dynamic>(
        builder: (_) => widget, settings: settings);
  }
  return route;
}