flutter - Flutter注销以删除所有路由
问题描述
下面是我的应用小部件树。如果用户未登录,则显示登录页面,如果用户已登录,则显示工作页面。在帐户页面上我有注销按钮。注销按钮实现推送替换并显示登录页面。
问题是 - 当用户再次单击后退按钮时,工作页面会显示。如何从小部件树中删除所有路由并仅在注销操作后显示登录页面?
注意 - 我没有使用命名路由,只是 Push 、 Pop 和 Replacement
解决方案
如果你正在使用namedRoutes
,你可以通过简单地做到这一点:
Navigator.pushNamedAndRemoveUntil(context, "/login", (Route<dynamic> route) => false);
"/login"
您要在路由堆栈上推送的路由在哪里。
注意 :
此语句删除堆栈中的所有路由,并使推送的路由成为根。
推荐阅读
- ios - 无法出列同类视图:UICollectionElementKindCell
- rust - 如果插入顺序不同,则检查在 sprs 中写入 Matrix Market 格式的两个 TriMat 矩阵的相等性不起作用
- haskell - 我们可以用函数声明一个新类型吗?
- go - Go 中的 bytes.String() 与 bytes.Bytes()
- sparql - 在 Apache Jena Fuseki 上查询时没有可用数据
- list - 子菜单类的父元素中的 href 链接
- javascript - 使用谷歌地图 api 反应应用程序不显示或导入列表的选项文本
- python - 在只读模式下使用 OpenPyXL 获取 Excel 工作表的列名
- postgresql - JSONB GIN索引上的Postgres CLUSTER?
- php - 百分号(% 或 %25)在路径中不起作用