Flutter,如何在setState下调用异步函数(api请求)

Flutter, how to call async function (api request) under setState

我想在 setState 中调用异步 api 请求,但是当我使 setState 异步时,它无法正常工作。否则,我无法等待回复。我在控制器中的请求:

 void fetchList() async {
    isLoading(true);
    try {
      var _list = await Requests.getYesillemeList();
      if (_list != null) {
        yList.value = _list;
      }
    } finally {
      reOrderList();
      isLoading(false);
    }
  }

如果我在 setState 中调用 controller.fetchList(),即使它正在等待 fetchList 函数中的响应,我也无法获得响应。当我使 setState 异步、使 fetchList Future 无效并在 setState 中等待 controller.fetchList 时,我得到响应,但其余代码无法正常工作。那么,如何在 setState 中调用我的 api 请求并等待响应。

如果您正在使用 Getx,您可以使用 GetX reactive widgets/methods

示例:

控制器

class MyClass extends GetxController{

    Rx<MyModel> yList = <MyModel>[].obs;
    RxBool isLoading = false;

      void fetchList() async {
        isLoading(true);
        try {
          var _list = await Requests.getYesillemeList();
          if (_list != null) {
            yList.value = _list;
          }
        } finally {
          reOrderList();
          isLoading(false);
        }
      }

}

Widget/Page

class DashboardPage extends GetView<MyClass>{
    @override
    Widget build(BuildContext context) {
        controller.fetchList();
        return Obx(() => Text("${controller.yList.length}"));
    }
}