【发布时间】:2023-04-04 03:12:01
【问题描述】:
我有这个变量问题
这是我的getdata 函数
Future <List <Deal>> getData() async{
String myUrl = "http://10.25.20.27:5000/api/all";
var response = await http.get(myUrl,
headers: {
'Accept':'application/json',
});
var jsonData = json.decode(response.body);
List<Deal> deals =[];
var u;
for( u in jsonData){
Deal deal = Deal(u["id"],u["name"],u["adress"],u["photo"],u["Description"],u["discount"]);
}
return deals;
}
我得到了这个错误
正在执行热重载... 在 902 毫秒内重新加载了 594 个库中的 14 个。 E/flutter(4211):[错误:flutter/lib/ui/ui_dart_state.cc(148)]未处理的异常:类型'String'不是'index'类型'int'的子类型 E/flutter (4211): #0 DatabaseHelper.getData (package:flutter_app/databasehelper.dart:116:25) E/颤振(4211): E/颤振(4211):#1 _HomeePageState.build。 (包:flutter_app/homee_page.dart:100:80) E/flutter (4211): #2 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:654:14) E/颤振(4211):#3 _InkResponseState.build。 (包:flutter/src/material/ink_well.dart:729:32) E/flutter(4211):#4 GestureRecognizer.invokeCallback(包:flutter/src/gestures/recognizer.dart:182:24) E/flutter (4211): #5 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:365:11) E/flutter (4211): #6 TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:275:7) E/flutter (4211): #7 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:455:9)
【问题讨论】:
-
尝试打印
u变量以查看里面的内容:print(u); -
您能否分享响应 JSON 和 Deal 类以便更好地理解问题?
-
当我打印 ui 时得到 null 和 thisi
response.body[[{id: 1, name: adresse Marrakech, adress: guéliz, photo: , Description: C'est un endroit zwiiin, 折扣: 30 }, {id: 2, name: Bogato, adress: guéliz, photo: , Description: bniiinnn, discount: Offres }]] -
所以你的意思是
u在for( u in jsonData){循环中为空? -
这是整个循环:for(u in jsonData){ Deal deal = Deal(u["id"],u["name"],u["adress"],u["照片"],u["描述"],u["折扣"]);交易。添加(交易); }