create static method
GoRouter
create({
- required Widget initialLocation,
- List<
NavigatorObserver> ? observers, - FutureOr<
Widget?> redirect(- BuildContext,
- GoRouterState
- required List<
FiberRouteNode> nodes, - Listenable? refreshListenable,
Implementation
static GoRouter create({
required Widget initialLocation,
List<NavigatorObserver>? observers,
FutureOr<Widget?> Function(BuildContext, GoRouterState)? redirect,
required List<FiberRouteNode> nodes,
Listenable? refreshListenable,
}) {
final controllerRouteNames = _collectControllerRouteNames(nodes);
String pathFor(Widget widget) => '/${_routeNameFor(widget, controllerRouteNames)}';
return GoRouter(
initialLocation: pathFor(initialLocation),
observers: [_fiberRouteObserver, ...?observers],
refreshListenable: refreshListenable,
redirect: (context, state) async {
final result = await redirect?.call(context, state);
if (result == null) return null;
return pathFor(result);
},
debugLogDiagnostics: false,
routes: _flatten(nodes, controllerRouteNames: controllerRouteNames),
);
}