Skip to content

Instantly share code, notes, and snippets.

@iamEtornam
Last active September 30, 2021 09:09
Show Gist options
  • Select an option

  • Save iamEtornam/f205d37aa57358832dbdc0e3c244a0b4 to your computer and use it in GitHub Desktop.

Select an option

Save iamEtornam/f205d37aa57358832dbdc0e3c244a0b4 to your computer and use it in GitHub Desktop.
A navigator extension that checks if a route is already the current route hence no action is taken
```dart
import 'package:flutter/material.dart';
extension NavigatorStateExtension on NavigatorState {
void pushNamedIfNotCurrent( String routeName, {Object arguments} ) {
if (!isCurrent(routeName)) {
pushNamed( routeName, arguments: arguments );
}
}
bool isCurrent( String routeName ) {
bool isCurrent = false;
popUntil( (route) {
if (route.settings.name == routeName) {
isCurrent = true;
}
return true;
} );
return isCurrent;
}
}
//usage of Navigator extension
Navigator.of(context).pushNamedIfNotCurrent('/homeView',arguments:'some data');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment