RouteDefinerRouter constructor
RouteDefinerRouter({ - String initialRoute = '/',
- String appTitle = '',
- required Widget loadingBuilder(
- CurrentRoute
),
- required Widget deniedBuilder(
- BuildContext,
- CurrentRoute
),
- required Widget notFoundBuilder(
- BuildContext,
- RouteState
),
- required Widget errorBuilder(
- BuildContext,
- RouteFailure,
- VoidCallback
),
- void onError(
- RouteFailure
)?,
- Duration? resolutionTimeout,
- int redirectLimit = 5,
- RouteOptions defaultRouteOptions = const RouteOptions(),
- DefinedRouteFactory? routeFactory,
- required Iterable<RouteDefiner> routes,
- GlobalKey<NavigatorState>? navigatorKey,
- List<NavigatorObserver> observers = const [],
- String? restorationScopeId,
- RouteArgumentsCodec argumentsCodec = const JsonRouteArgumentsCodec(),
- Listenable? refreshListenable,
- BackButtonDispatcher? backButtonDispatcher,
- int historyLimit = 0,
- NavigationDiagnostics? diagnostics,
})
Implementation
RouteDefinerRouter({
this.initialRoute = '/',
this.appTitle = '',
required this.loadingBuilder,
required this.deniedBuilder,
required this.notFoundBuilder,
required this.errorBuilder,
this.onError,
this.resolutionTimeout,
this.redirectLimit = 5,
this.defaultRouteOptions = const RouteOptions(),
this.routeFactory,
required Iterable<RouteDefiner<dynamic>> routes,
GlobalKey<NavigatorState>? navigatorKey,
List<NavigatorObserver> observers = const [],
this.restorationScopeId,
this.argumentsCodec = const JsonRouteArgumentsCodec(),
Listenable? refreshListenable,
this.backButtonDispatcher,
this.historyLimit = 0,
this.diagnostics,
}) : _registry = RouteRegistry(routes),
navigatorKey = navigatorKey ?? GlobalKey<NavigatorState>(),
_observers = List.unmodifiable(observers),
_refreshListenable = refreshListenable {
if (redirectLimit < 1) {
throw ArgumentError.value(redirectLimit, 'redirectLimit');
}
if (historyLimit < 0) {
throw ArgumentError.value(historyLimit, 'historyLimit');
}
parseRouteUri(initialRoute);
_refreshListenable?.addListener(refresh);
_entries = _canonicalStack(parseRouteUri(initialRoute));
_record(NavigationAction.initialize, source: null, subject: _entries.last);
}