我想開發一個註銷按鈕,它會將我發送到登錄路由並從導航器中刪除所有其他路由。該文檔似乎不解釋如何使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重繪所有小部件