【发布时间】:2021-10-21 11:05:05
【问题描述】:
下面的示例在较旧的颤振 sdk 版本上工作,但现在我有错误 参数类型“对象?”不能分配给参数类型“列表”
FutureBuilder(
future: fetchEmp(),
builder: (context, snapshot) {
return snapshot.hasData
? RecommandEmp(emps: snapshot.data) ---Here is problem!!!
: Center(child: Image.asset('assets/images/no.png'));
},
),
class RecommandEmp extends StatefulWidget {
const RecommandEmp({Key? key, required this.emps}) : super(key: key);
final List<Emp> emps;
@override
_RecommandEmpState createState() => _RecommandEmpState();
}
fetchEmp
Future<List<Emp>> fetchEmp() async {
final response = await http.get(Uri.https(myUrl, 'select/emp'));
if (response.statusCode == 200) {
List<Emp> emp = (json.decode(utf8.decode(response.bodyBytes))["items"] as List)
.map((data) => Emp.fromJson(data))
.toList();
return emp;
} else {
throw Exception('Error!');
}
}
型号 --> https://ibb.co/zr7H8v2
【问题讨论】:
-
你能调试
fetchEmp()中的emp值吗?获取数据时可能会出现问题。因为如果emp是 List 则不应显示该错误 -
@MiguelEscobarCalderon 当使用 print(emp[2].ename);在 fetchEmp 中获取 ename 值。