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

Flutter类型不匹配报错:_InternalLinkedHashMap<String,dynamic>不是String子类型

问题解决:类型不匹配错误

错误根源

你代码里的这一行直接把整个Map对象传给了Text组件:

Text(
  item[index],
  style: TextStyle(
      color: Colors.blue.shade600,
      fontSize: 18,
      fontWeight: FontWeight.bold),
),

item[index]是_InternalLinkedHashMap<String, dynamic>类型的对象,而Text组件要求传入String类型,这直接导致了类型不匹配的错误。

修复步骤

  1. 修正错误的Text组件:
    如果你不需要这个Text,直接删除该行及对应的SizedBox;如果需要展示某个字段,替换成具体的key,比如:

    Text(
      item[index]['id'], // 替换为你实际需要展示的字段名,如'id'、'category'等
      style: TextStyle(
          color: Colors.blue.shade600,
          fontSize: 18,
          fontWeight: FontWeight.bold),
    ),
    
  2. 额外优化建议:

    • 给item列表指定明确类型,避免动态类型隐患:List<Map<String, dynamic>> item = [];
    • 接口请求完成后调用setState更新UI,否则数据加载后页面不会自动刷新:
      getData() async {
        var url = 'http://selogerabidjan.global-aeit.com/flutter/logement_concret.php';
        final response = await http.get(Uri.parse(url));
        setState(() {
          item = json.decode(response.body);
        });
      }
      
    • 添加加载状态处理,比如在数据未加载完成时展示加载指示器:
      item.isEmpty 
          ? const Center(child: CircularProgressIndicator()) 
          : ListView.builder(...)
      

完成以上修改后,类型不匹配的错误即可解决,页面也能正确加载并展示数据。

内容的提问来源于stack exchange,提问作者msi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 03:31:06