pushIfNotCurrent<T> static method
Future<T?>
pushIfNotCurrent<T>(
- BuildContext context,
- String routeName, {
- Object? arguments,
- NavTransitionType? transitionType,
- Duration? transitionDuration,
- Duration? reverseTransitionDuration,
Push only if routeName is not already the current route.
Prevents duplicate entries in the back-stack.
Implementation
static Future<T?> pushIfNotCurrent<T>(
BuildContext context,
String routeName, {
Object? arguments,
NavTransitionType? transitionType,
Duration? transitionDuration,
Duration? reverseTransitionDuration,
}) {
final String? current = ModalRoute.of(context)?.settings.name;
if (current == routeName) return Future<T?>.value();
return pushNamed<T>(
context,
routeName,
arguments: arguments,
transitionType: transitionType,
transitionDuration: transitionDuration,
reverseTransitionDuration: reverseTransitionDuration,
);
}