navigate<T> method
Implementation
Future<T?> navigate<T>(
String name, {
required TransitionType transition,
CruiserArgs? args,
NavigationType navigationType = NavigationType.push,
dynamic result,
bool Function(Route<dynamic> route)? removeUntilPredicate,
}) async {
assert(navigationType != NavigationType.pushAndRemoveUntil ||
removeUntilPredicate != null);
_checkAndThrowRouteNotFound(name, args, navigationType);
final argsWrapper =
ArgumentsWrapper(cruiserArgs: args, transition: transition);
currentTransition = transition;
switch (navigationType) {
case NavigationType.push:
{
return await this
.navigatorKey
.currentState!
.pushNamed(name, arguments: argsWrapper);
}
case NavigationType.pushReplace:
{
return await this.navigatorKey.currentState!.pushReplacementNamed(
name,
result: result,
arguments: argsWrapper);
}
case NavigationType.pushAndRemoveUntil:
{
return await this
.navigatorKey
.currentState!
.pushNamedAndRemoveUntil<T>(name, removeUntilPredicate!,
arguments: argsWrapper);
}
case NavigationType.popAndPushNamed:
{
return await this
.navigatorKey
.currentState!
.popAndPushNamed(name, result: result, arguments: argsWrapper);
}
}
}