我有一个Flutter应用,其中使用了GetX Controllers。该应用具有6个屏幕,每个屏幕都有自己的GetxController。
第1和第2个屏幕用于登录系统,而第3至第6个屏幕用于应用程序内容。
用户在登录后可以在第3-4-5屏幕之间前进和后退,但当他到达第6屏幕时,只能返回到第3屏幕,所有先前的堆栈必须被删除(因此他无法返回)。
第1个问题:如果我从第6个屏幕执行Get.offAll(()=> const Screen3()),则Screen3的控制器将被删除,什么也不起作用了。我通过以下方式解决了这个问题(不知道这个词是否存在!: D):
Get.put(Controller3(),permanent:true)
但是,这里出现了
第2个问题:如果用户按下注销按钮(仅在第3个屏幕中存在),这次我需要删除Controller3。这时,调用Get.offAll不会删除控制器,也不会调用Get.delete (),因为它说:
“Controller3”已被标记为永久性,SmartManagement无权删除它。
我陷入了困境,真的不知道该怎么办。
第1和第2个屏幕用于登录系统,而第3至第6个屏幕用于应用程序内容。
用户在登录后可以在第3-4-5屏幕之间前进和后退,但当他到达第6屏幕时,只能返回到第3屏幕,所有先前的堆栈必须被删除(因此他无法返回)。
第1个问题:如果我从第6个屏幕执行Get.offAll(()=> const Screen3()),则Screen3的控制器将被删除,什么也不起作用了。我通过以下方式解决了这个问题(不知道这个词是否存在!: D):
Get.put(Controller3(),permanent:true)
但是,这里出现了
第2个问题:如果用户按下注销按钮(仅在第3个屏幕中存在),这次我需要删除Controller3。这时,调用Get.offAll不会删除控制器,也不会调用Get.delete (),因为它说:
“Controller3”已被标记为永久性,SmartManagement无权删除它。
我陷入了困境,真的不知道该怎么办。