【问题标题】:GetX Pop to Root issueGetX Pop to Root 问题
【发布时间】:2021-12-22 16:31:24
【问题描述】:

我在 Flutter 上使用 GetX 进行路由管理时遇到了问题。

我的底部导航栏中有一个按钮,可以从应用程序的任何位置按下该按钮。让我们称之为用户在按下按钮时所在的位置根屏幕。按下此按钮后,会弹出一个新的屏幕 A,其中包含更多选项,与这些选项交互时,将通向屏幕 B,然后再通向屏幕 C,而 C 以通向屏幕 D 结束。

我已经做到了,按下导航栏中的按钮将调用Get.to(A())并弹出屏幕A,并且在appBar的左上角有一个返回按钮将调用Get.back()。我的问题是,当我在屏幕 B、C 或 D 上时,我想实现一个类似的后退按钮,按下该按钮时会弹出到根屏幕(用户在与导航栏中的按钮交互之前所在的屏幕)。问题是Go.back() 在这种情况下只会导致上一个屏幕(D 会导致 C,B 会导致 A)并且使用Get.offAllNamed("rootScreen") 意味着我必须存储根屏幕的名称并通过一直到 D。有没有更简单的方法可以弹出到根屏幕/使用 Get 的任何替代方法?谢谢!

编辑: 现在我多次打电话给Get.back(),它似乎可以工作,例如如果我在屏幕B上,我连续调用2次返回根屏幕,如果在C上,则调用3次,等等。如果有人知道更有效的方法,请帮助我,谢谢!

【问题讨论】:

    标签: flutter routes get navigation flutter-getx


    【解决方案1】:

    将您的路由存储在类constants.dart Constants 中的静态常量值中

    这样您就可以轻松地使用命名导航,而无需将路由路径深入到导航堆栈中。

    致电Get.offUntil(Constants.rootScreen); 这将弹出您的导航堆栈,直到您到达所需的屏幕。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-03
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多