Je souhaite développer un bouton de déconnexion qui m'enverra à la route de connexion et supprimera toutes les autres routes de la variable Navigator
. La documentation ne semble pas expliquer comment créer une RoutePredicate
ou avoir une sorte de fonction removeAll.
J'ai pu accomplir cela avec le code suivant:
Navigator.of(context)
.pushNamedAndRemoveUntil('/login', (Route<dynamic> route) => false);
Le secret ici utilise un RoutePredicate qui retourne toujours false (Route<dynamic> route) => false
. Dans cette situation, il supprime tous les itinéraires, à l'exception du nouvel itinéraire /login
que j'ai poussé.
Une autre alternative est popUntil()
Navigator.of(context).popUntil(ModalRoute.withName('/root'));
Cela fera apparaître toutes les routes jusqu'à ce que vous soyez de retour à la route nommée.