在Getx Flutter中使用API后,如何不断更新数据



我有一个getx控制器和一个更新数据库中数据的方法,我只是想知道获取API后如何不断刷新和更新UI?这是我的控制器

class AdditionalContactController extends GetxController {
var additionalContactList = <AdditionalContact>[].obs;
var isLoading = true.obs;
UserController _userController = Get.find();
@override
void onInit() {
super.onInit();
_userController.getMail().then((value) async {
await _userController.getUser(value);
getAdditionalContacts(_userController.user.value.id);
});
}
//Update contact
Future<bool> updateContact({...}) async {
var response = await http.post(
Uri.parse(
"https://..."),
body: {
...
});
var jsonData = jsonDecode(response.body);
if (jsonData == "failed") {
return false;
}
return true;
}
}

您可以使用ever工作程序调用一个方法,该方法在每次Rx分配新值时执行:

class AdditionalContactController extends GetxController {
var additionalContactList = <AdditionalContact>[].obs;
@override
void onInit() {
super.onInit();
ever(additionalContactList, methodToExecute)
});
}

methodToExecute(list) {
/* Code that will execute every time the additionalContactList changes */
}

现在,每次additionalContactList被更改,就像我们给它分配一个新的List一样:

additionalContactList.value = [];

然后methodToExecute()将自动执行,并且每次都执行。

最新更新