Flutter elimina todas las rutas

Resuelto chrislondon asked hace 7 años • 17 respuestas

Quiero desarrollar un botón de cierre de sesión que me envíe a la ruta de inicio de sesión y elimine todas las demás rutas del archivo Navigator. La documentación no parece explicar cómo crear RoutePredicateo tener algún tipo de función removeAll.

chrislondon avatar Aug 26 '17 03:08 chrislondon
Aceptado

Pude lograr esto con el siguiente código:

Navigator.of(context)
    .pushNamedAndRemoveUntil('/login', (Route<dynamic> route) => false);

El secreto aquí es usar un RoutePredicate que siempre devuelve false (Route<dynamic> route) => false. En esta situación, elimina todas las rutas excepto la nueva /loginruta que presioné.

chrislondon avatar Aug 25 '2017 20:08 chrislondon

Puedo hacerlo usando el siguiente fragmento de código:

 Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (context) =>
    LoginScreen()), (Route<dynamic> route) => false);

Si desea eliminar todas las rutas debajo de la ruta enviada, RoutePredicate siempre devuelve false , por ejemplo (Route route) => false .

Muhammad Aamir avatar Jul 27 '2019 16:07 Muhammad Aamir