pop<T extends RouteParams?> method
Pops the current route off the navigator.
args: An optional RouteParams object to pass to the route that will become visible after this one is popped. The receiving route can get this argument viacontext.getArgumentAndClean()in itsonAppearcallback.
Implementation
Future<void> pop<T extends RouteParams?>({
T? args,
RouteSettings? settings,
}) async {
final popParams = getArgumentAndClean<_PopParam>(
settings: settings,
)?.popParams;
final navigator = navigate;
if (navigator.canPop()) {
final name = settings?.name ?? ModalRoute.of(this)?.settings.name;
navigator.popUntil((route) {
if (route.settings.name == name) {
return false;
}
if (route.settings.arguments is Map) {
_createArguments([args, popParams]).forEach(
(key, value) {
((route.settings.arguments as Map?) ?? {}).update(
key,
(value) => value,
ifAbsent: () => value,
);
},
);
}
return true;
});
} else {
await pushNamed(
BrowserConfig.of(this).defaultRoute.path,
args: [args, popParams],
navigator: navigator,
);
}
}