如何解决如何在getx中将变量重置为默认值?
我正在创建一个有多个问题(如测验)的应用程序,我正在使用 Getx 进行状态管理。
在主方法中,我按如下方式初始化控制器
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.
除了手动更新变量之外,还有什么我想做的吗?
解决方法
更新:事实证明
before-hydration
在主屏幕中初始化控制器时完成这项工作
也打电话
Get.reset();
在构建方法中会重新初始化控制器
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。