navigateToRoute<R, P extends RouteParams> method
Navigates directly to a route instance, using the provided parameters
.
Implementation
Future<R?> navigateToRoute<R, P extends RouteParams>(
BuildContext context, AppRoute<R, P> appRoute,
{bool replace = false,
P? parameters,
bool clearStack = false,
TransitionType? transition,
bool rootNavigator = false,
NavigatorState? navigator,
Duration transitionDuration = const Duration(milliseconds: 250),
RouteTransitionsBuilder? transitionBuilder}) {
if (appRoute is AppPageRoute<R, P>) {
final Route<R?> Function(String, P) routeCreator =
routeFactory.generate<R, P>(
appRoute,
appRoute.transitionType,
transitionDuration,
transitionBuilder,
);
final _navigator =
navigator ?? navigatorOf(context, rootNavigator == true);
final route = routeCreator(
appRoute.route, parameters ?? DefaultRouteParams.emptyAs());
return replace
? _navigator.pushReplacement(route as Route<R>)
: _navigator.push(route as Route<R>);
} else if (appRoute is CompletableAppRoute<R, P>) {
return appRoute
.handle(context, parameters ?? DefaultRouteParams.emptyAs(),
(BuildContext context, AppRoute route, RouteParams params) {
return navigateToDynamicRoute(context, route, parameters: params);
});
} else {
throw "Invalid route type ${appRoute.runtimeType}";
}
}