You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter复制List的hostId值到空列表时报_TypeError错误如何解决

错误原因

你声明的pcBusy是List类型,但for循环中直接用赋值运算符=将int类型的hostId赋值给了pcBusy变量,直接修改了变量的类型,触发类型不匹配报错。

修复方案

将循环内的赋值逻辑改为调用列表的add()方法,把每个hostId插入到列表末尾即可,修正后的代码如下:

List pcBusy = [];

void fetchDataStandart() async {
  final urlAuth =
      Uri.parse('http://185.XX.XXX.XXX/api/usersessions/activeinfo');
  final response = await http
      .get(urlAuth, headers: <String, String>{'authorization': basicAuth});

  if (response.statusCode == 200) {
    List listPc = List.from(json.decode(response.body)['result']);

    for (int i = 0; i < listPc.length; i++) {
      pcBusy.add(listPc[i]['hostId']);
    }
    print(pcBusy);
  } else {
    throw Exception('Ошибка получения данных');
  }
}

可选优化写法

你也可以直接用map方法完成转换,省去手写for循环的步骤:

// 替换原有for循环即可
pcBusy = listPc.map((item) => item['hostId']).toList();

内容的提问来源于stack exchange,提问作者Чак Джонс

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 17:27:03