【发布时间】:2020-02-15 10:44:02
【问题描述】:
在我的颤振应用程序中,我使用此代码转到我的仪表板页面,但它第一次没有这样做,我收到 debugLocked 错误。
应用程序中的启动页面是一个路由器,用于检查共享首选项“sessionid”,如果设置,则将用户直接带到仪表板,否则将用户带到登录处。
如果没有下面的代码,我可以使用Navigator.pushReplacement() 很好地访问我的仪表板,但随后,appBar 上会出现一个后退箭头。这个后退按钮将应用程序带回路由器。
我搜索了有关如何从导航器中删除所有屏幕的答案,我找到了以下内容。
Navigator.of(context).popUntil(ModalRoute.withName(Dashboard.id));
使用上面的代码会给我debugLocked 错误。有没有办法缓解这个问题?或者还有其他有效的方法可以让我从上下文中删除屏幕吗?将automaticallyImplyLeading 设置为false 是否有帮助?因为只有在有人登录或注册后才会出现此错误。
【问题讨论】:
-
您想直接导航到上一页吗?如果是这种情况,您只需要使用: Navigator.pop(context);
-
另外,您可以更改导航并使用 Pages 引用而不是 Routes,我认为这是在 Flutter 上导航的更好方式
-
不,我不想导航到上一页。其次,您能否详细说明使用页面引用是什么意思?它比路线好在哪里?
-
您可以使用对页面的引用进行导航,例如: Navigator.push(HomePage()) 对我来说更好,因为您不需要为每个页面创建路由并且更容易传递参数到不同的页面,这是我的偏好,我认为这是在 Flutter 中导航的推荐方式
-
据我所知,我不了解这些术语。然而,那个骗子并没有回答我的问题。
标签: flutter dart navigation flutter-widget