【发布时间】: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