未处理的异常:RangeError(索引):无效值:有效值范围为空:0

时间:2019-06-10 16:03:14

标签: flutter dart

此方法始终运行。我检查了API。如果API值更改,我将删除数据库并再次插入。这样的使用情况正确吗? (可以使用streamWidget或FutureWidget?如果可以的话?)

错误消息:

  

[ERROR:flutter / lib / ui / ui_dart_state.cc(148)]未处理的异常:   RangeError(索引):无效值:有效值范围为空:0

 checkQuick(String url, String token) async {
    result =
        (await HelperDatabase1().displayGetUserPreference()).elementAt(0)?.data;
    final response = await http.get(
      '$url/nativeapi/v1.0/User/GetUserPreference',
      headers: {'Authorization': 'Bearer $token'},
    );
    final jsonResponse = json.decode(response.body);
    GetUserPreference model = GetUserPreference.fromJson(jsonResponse);
    var data = GetUserPreference(data: model.data);

    if (result != data.data) {
      await HelperDatabase1().deleteGetUserPreference();
      await HelperDatabase1().storeGetUserPreference(url, token);
    }
  }

1 个答案:

答案 0 :(得分:2)

错误是因为displayGetUserPreference返回了一个空列表,因此为了解决您的问题,您应该在获取商品之前检查列表是否不为空。

final list =  (await HelperDatabase1().displayGetUserPreference());
if (list.isNotEmpty)
    result = list.elementAt(0).data;