flutter - Flutter GETX:每次我们导航到其他页面/路由时如何删除初始化控制器
问题描述
新手在这里。每次推回屏幕时如何重新运行 onInit()?onInit() 只运行一次,但导航回上一个屏幕不会删除已初始化的控制器 ( FetchData ) 嗯..
每次我想弹出页面时, 我只使用Get.back() ,每次我想在命名路线上导航时使用 Get.toNamed()
我唯一想做的就是每次弹出页面时删除初始化控制器( FetchData ),但我不知道该怎么做。
我的GetxController
class FetchData extends GetxController {
RxList items = [].obs;
@override
onInit() {
fetchData();
super.onInit();
}
Future<void> fetchData() async {
var result = await http.get("api.url");
items.value = result.body;
}
}
提前致谢!
解决方案
我使用没有 nullsafety 的 getx 版本 3.25.6,当我注销 Get.off、Get.offUntil、Get.offAndToNamed 方法时,不会从内存中删除我的 GetXController。
然后我尝试了下面的代码,一切正常。
Get.offUntil(GetPageRoute(page: () => Login()), ModalRoute.withName('toNewLogin') );
Timer(Duration(milliseconds: 300), ()=>Get.delete<MainPageController>());
推荐阅读
- javascript - 使用 android 意图在亚马逊应用程序中打开链接
- excel - 如何根据该表中的单元格值动态保护excel表
- html - react-native-webview中的视口比例保持标题的字体大小
- php - 用户是否可以通过 Livewire 中的 ajax 请求更改模型实例?
- integration-testing - EFCore 5 与 SQL-SERVER localdb 的集成测试:迁移问题
- javascript - CSS伪元素不显示svg背景图片
- javascript - Onmousedown 不允许我点击链接
- spring-boot - 通过 Docker 运行 bootRun 时无法获取 gradle.properties
- javascript - 处理 document.getElementById 抛出 nullreference 错误的更好方法是什么
- python-3.x - 如何修复 - 无法编码对象:28.0,类型:
?