web-dev-qa-db-fra.com

Flutter supprimer tous les itinéraires

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.

15
chrislondon

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é.

43
chrislondon

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.

1
nleslie