此方法始终运行。我检查了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);
}
}
答案 0 :(得分:2)
错误是因为displayGetUserPreference
返回了一个空列表,因此为了解决您的问题,您应该在获取商品之前检查列表是否不为空。
final list = (await HelperDatabase1().displayGetUserPreference());
if (list.isNotEmpty)
result = list.elementAt(0).data;