我想开发一个注销按钮,它会将我发送到登录路由并从导航器中删除所有其他路由。该文档似乎不解释如何使RoutePredicate
或任何类型的removeAll函数。Flutter删除所有路由
1
A
回答
5
我可以用下面的代码来实现:
Navigator.of(context)
.pushNamedAndRemoveUntil('/login', (Route<dynamic> route) => false);
这里的秘密是使用RoutePredicate总是返回false (Route<dynamic> route) => false
。在这种情况下,它将删除除我推送的新路线/login
之外的所有路线。
1
对于这种情况,您应该考虑使用WillPopScope
小部件。
不仅它更干净。但它也有一些奖金:
- 能够显示confirmDialog,如'你确定要离开吗?'
- 你不会失去你的导航历史。这意味着您可以在登录后继续导航。
然后,如果你想关闭应用程序。您可以使用exit
函数。
相关问题
- 1. CakePHP路由最佳实践(删除所有默认路由)
- 2. 删除路由
- 3. RequireJS路由删除#
- 4. 删除除所有的一切由()
- 5. 如何为Stateful Widget创建Flutter路由?
- 6. 没有路由匹配[删除]
- 7. Micropost - 路由错误没有路由匹配[GET] - 删除Micropost
- 8. 响应路由组件处理所有“/”路由除“/登录”外
- 9. 删除评论Rails路由
- 10. 从loopback中删除路由
- 11. 删除Devise用户(没有路由匹配[删除]“users/edit.8”
- 12. Laravel 5路由的所有路由
- 13. 删除路径中的所有目录
- 14. MinGW GCC.exe删除所有\从路径
- 15. nodejs路由:除第一页外的所有具有身份验证的路由
- 16. 快速路由器:允许新路由的所有路由
- 17. 渔获expressjs所有路由
- 18. ASP.NET路由所有页面
- 19. AWS VPC路由表 - 删除默认路由
- 20. 如何从路由表中删除路由表
- 21. Rails 2.3.5嵌套路由在Rails 2.3.5中替换/删除路由
- 22. 路由匹配后删除额外的路由值
- 23. 动态添加/删除路由到路由器角色
- 24. 删除所有,但
- 25. 删除所有列
- 26. 删除所有行
- 27. 删除所有django.contrib.messages
- 28. NSFetchedResultsController删除所有
- 29. 删除所有行除了
- 30. 强制Flutter重绘所有小部件