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类型,这直接导致了类型不匹配的错误。
修复步骤
修正错误的Text组件:
如果你不需要这个Text,直接删除该行及对应的SizedBox;如果需要展示某个字段,替换成具体的key,比如:Text( item[index]['id'], // 替换为你实际需要展示的字段名,如'id'、'category'等 style: TextStyle( color: Colors.blue.shade600, fontSize: 18, fontWeight: FontWeight.bold), ),额外优化建议:
- 给
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
相关产品推荐
相关产品推荐

