如何在getx中将变量重置为默认值?

How to reset variable to default values in getx?

我正在创建一个有多个问题(如测验)的应用程序,我正在使用 Getx 进行状态管理。

在main方法中我初始化控制器如下

void main() {
  Get.put(HomeScreenController());
  Get.put(QuestionsController());
  runApp(MyApp());
}

在主屏幕中,我有一个综合浏览量,我正在使用 HomeScreenController() 来管理它。 页面视图的最后一页有一个返回初始页面的按钮。对于我的情况,我想将两个控制器中的所有变量重置为其初始值。

我已经尝试过一种解决方案,它有效,但我觉得对于其他具有如此多变量的控制器来说,它正在调用一种手动重置变量的方法,这很乏味。

我尝试过的另一个解决方案是在用户单击调用 Get.put(HomeScreenController()) 的按钮时处理控制器;在主屏幕的构建方法中。

onPressed: () {
                    qCon.dispose();
                    controller.dispose();
                    Navigator.pushReplacementNamed(context, HomeWrapper.id);
                  },

但我收到一条错误消息

A HomeScreenController was used after being disposed.

'Once you have called dispose() on a HomeScreenController, it can no longer be used.

除了手动更新变量之外,还有什么可以做我想做的吗?

更新:结果是

Get.reset();

在主屏幕中初始化控制器时执行此操作

也在打电话

Get.put(ControllerName());

在构建方法中会重新初始化控制器