Flutter 颤振GETX:如何在每次导航到其他页面/路线时删除初始化的控制器

Flutter 颤振GETX:如何在每次导航到其他页面/路线时删除初始化的控制器,flutter,dart,getx,Flutter,Dart,Getx,我是新手。如何在每次返回屏幕时重新运行onInit()?onInit()只运行一次,但导航回上一个屏幕不会删除已初始化的控制器(FetchData)hmmm 每次我想弹出页面时,我只使用Get.back(),并且 Get.toNamed()每次我想在命名路线上导航时 我只想在每次弹出页面时删除初始化的控制器(FetchData) 但是我不知道怎么做 我的GetxController class FetchData extends GetxController { RxList items

我是新手。如何在每次返回屏幕时重新运行onInit()?onInit()只运行一次,但导航回上一个屏幕不会删除已初始化的控制器(FetchData)hmmm

每次我想弹出页面时,我只使用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;
    }
}
类FetchData扩展GetxController{
RxList items=[].obs;
@凌驾
onInit(){
fetchData();
super.onInit();
}
Future fetchData()异步{
var result=wait http.get(“api.url”);
items.value=result.body;
}
}

提前谢谢

onInit只调用一次。从另一个屏幕返回时,您可以使用另一个方法运行,例如,当调用新屏幕时,您可以等待它关闭,然后再次调用您的方法:

//go to new screen
await Get.toNamet(myscreen);
//after run my method
controller.fectchData();
如果仅在某些情况下需要调用该方法,则可以传回bool以询问是否需要重新加载:

Get.back(result: true);
在屏幕上显示:

//go to new screen
var result = await Get.toNamet(myscreen);
    
if(result != null && result == true)//after run only if needed
controller.fectchData();
你可以用

Get.offAndToNamed(url)

没有提供足够的信息。您还需要提供绑定和查看代码段以获得适当的帮助,而此代码段可能会解决问题,真正有助于提高文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。