首页 > 解决方案 > onRefresh 回调返回 null

问题描述

我是RefreshIndicator用来刷新互联网数据的,但是当我从顶部下拉时,刷新图标没有消失,也出现了错误:

════════ Exception caught by material library ══════════════════════════════════
The following assertion was thrown when calling onRefresh:
The onRefresh callback returned null.

The RefreshIndicator onRefresh callback must return a Future.
════════════════════════════════════════════════════════════════════════════════

这是我的代码,其中声明了获取数据的方法:


Future<void> getApiData() async {
  return fetchWorldData();
}

Future<Map<String, dynamic>> fetchWorldData() async {
  Response response = await get(Uri.parse(
      'https://disease.sh/v3/covid-19/countries/${CurrentCountry.currentcountry}'));
  return json.decode(response.body);
}

这是我调用该方法的代码:

onRefresh: () {
  getApiData();
}

如果你能帮助我,我将不胜感激。

标签: flutterdart

解决方案


它将返回 null 因为你没有放在await这里所以它立即返回结果(不等待 API 获取实际数据)所以这样做

onRefresh: () async {
  await getApiData();
}

推荐阅读