push<T> method
Push a new route onto the navigator stack with animation
Returns a Future that completes to the result value passed to
See Navigator.push for more details
Implementation
Future<T?> push<T>(String path, {Map<String, dynamic>? extra}) async {
try {
final context = _currentContext;
if (context == null) {
if (_enableLogger) {
debugPrint('NavService.push: No valid context found.');
}
return null;
}
final navExtra = NavExtra(extra ?? {});
final route = _routes[path];
if (route == null) {
if (_enableLogger) {
debugPrint('NavService.push: Route not found for path: $path');
}
return null;
}
final result = await Navigator.of(
context,
).push<T>(_buildPageRoute<T>(path: path, extra: navExtra, route: route));
return result;
// ignore: avoid_catches_without_on_clauses
} catch (e, st) {
if (_enableLogger) {
debugPrint('NavService.push.exception: $e\n$st');
}
return null;
}
}