navigateToDynamicRoute method
Future
navigateToDynamicRoute(
- BuildContext context,
- AppRoute<dynamic, RouteParams>? appRoute, {
- bool replace = false,
- RouteParams parameters = const DefaultRouteParams(),
- bool clearStack = false,
- TransitionType? transition,
- bool rootNavigator = false,
- NavigatorState? navigator,
- Duration transitionDuration = const Duration(milliseconds: 250),
- RouteTransitionsBuilder? transitionBuilder,
})
Implementation
Future navigateToDynamicRoute(BuildContext context, AppRoute? appRoute,
{bool replace = false,
RouteParams parameters = const DefaultRouteParams(),
bool clearStack = false,
TransitionType? transition,
bool rootNavigator = false,
NavigatorState? navigator,
Duration transitionDuration = const Duration(milliseconds: 250),
RouteTransitionsBuilder? transitionBuilder}) {
if (appRoute is AppPageRoute) {
final Route<dynamic> Function(String, RouteParams) routeCreator =
routeFactory.generate(
appRoute,
appRoute.transitionType,
transitionDuration,
transitionBuilder,
);
final route = routeCreator(appRoute.route, parameters);
final _navigator =
navigator ?? navigatorOf(context, rootNavigator == true);
return replace
? _navigator.pushReplacement(route)
: _navigator.push(route);
} else if (appRoute is CompletableAppRoute) {
return appRoute.handleAny(context, parameters,
(context, route, params) async {
return await navigateToDynamicRoute(context, route, parameters: params);
});
} else {
throw "Unsupported AppRoutes type ${appRoute?.runtimeType ?? 'null'}";
}
}