flutter - 未处理的异常:RangeError(索引):无效值:有效值范围为空:0
问题描述
此方法始终运行。我检查了API。如果 API 值更改,我将删除我的数据库并再次插入。这是像这种情况下使用的正确方法吗?(可以使用streamWidget还是FutureWidget?如果可以怎么办?)
错误信息:
[错误: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);
}
}
解决方案
该错误是因为displayGetUserPreference
返回一个空列表,因此为了解决您的问题,您应该在获取项目之前检查列表是否不为空。
final list = (await HelperDatabase1().displayGetUserPreference());
if (list.isNotEmpty)
result = list.elementAt(0).data;
推荐阅读
- php - PhpStorm 不会为类型提示的函数/方法参数生成 docblock
- ruby - 通过 Faraday 向 GitHub API 发出请求时,我不断收到错误的状态代码(400、401、403)
- python - 在 Python 中将 knnMatch 与 opencv 一起使用时出错
- python - Matplotlib 绘图减少延迟
- html - 如何使用css过滤器将不同颜色的图像色调更改为蓝色色调
- lua - 从 Lua 中的模块内部引用模块中的变量/函数
- haskell - 我应该使用什么递归方案来重复一个有效的动作,直到它的结果符合某个标准?
- django - 如何从 Django Rest Framwrek 中的 URL 捕获参数以在视图中处理它
- docker - 如何使用 docker-compose 在具有正确读/写权限的绑定挂载 /godata 的 docker 中运行 gocd/server 容器?
- python - numpy数组转换成矩阵