【问题标题】:How to reset variable to default values in getx?如何在getx中将变量重置为默认值?
【发布时间】:2021-08-02 05:34:52
【问题描述】:

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

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

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

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

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

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

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.

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

【问题讨论】:

    标签: flutter dart flutter-getx


    【解决方案1】:

    更新:原来是这样

    Get.reset();
    

    在主屏幕初始化控制器时完成这项工作

    也叫

    Get.put(ControllerName());
    

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

    【讨论】:

      猜你喜欢
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 2017-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多