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

Flutter动态添加表格行报错:List<Map<String,Object>>无法转为Map<List,dynamic>

动态添加表格行触发类型转换异常

点击“Add Box”按钮动态添加表格行数据时,抛出如下异常:

Another exception was thrown: type 'List<Map<String, Object>>' is not a subtype of type 'Map<List, dynamic>' in type cast

每个表格单元格支持用户输入,本问题是「make model of array object in flutter」的后续问题,完整代码可查看DartPad。

问题原因

核心问题是类型不匹配:代码中某处将List<Map<String, Object>>类型的数据强制转换为Map<List<dynamic>, dynamic>,两种类型完全不兼容,导致类型转换失败。

修复方案

  • 检查数据源定义:确认存储表格行数据的变量类型为List<Map<String, Object>>(对应每行是一个键值对Map),而非嵌套Map类型。
  • 修正添加行的逻辑:添加新行时,生成符合类型要求的Map<String, Object>对象再加入列表,示例代码:
// 假设_tableData是存储行数据的列表
setState(() {
  _tableData.add({
    'column1': '', // 对应单元格初始值
    'column2': '',
    // 其他列字段
  });
});
  • 移除错误的类型转换:找到代码中类似xxx as Map<List<dynamic>, dynamic>的强制转换代码,替换为符合实际数据结构的类型处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:54:51