Je souhaite développer un bouton de déconnexion qui m'enverra à l'itinéraire de connexion et supprimera tous les autres itinéraires du Navigator
. La documentation ne semble pas expliquer comment créer un RoutePredicate
ou avoir une sorte de fonction removeAll.
Réponses
Trop de publicités?J'ai pu accomplir cela avec le code suivant:
Navigator.of(context)
.pushNamedAndRemoveUntil('/login', (Route<dynamic> route) => false);
Le secret ici est d'utiliser un RoutePredicate qui retourne toujours faux (Route<dynamic> route) => false
. Dans cette situation, il supprime tous les itinéraires, à l'exception du nouvel itinéraire /login
j'ai poussé.
amir khan
Points
21
je peux le faire avec l'extrait de code suivant:
Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (context) =>
LoginScreen()), (Route<dynamic> route) => false),
si vous voulez supprimer tout l'itinéraire en dessous de l'itinéraire poussé, RoutePredicate renvoie toujours false , par exemple (Route route) => false .
nleslie
Points
41