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

期望类型为'String'却获'Null':服务器数据无法在表格渲染问题

问题解决:表格无法渲染数据且报类型错误

问题原因

报错Expected a value of type 'String', but got one of type 'Null'的核心原因是:你在表格渲染时直接使用了服务器返回的null值字段,但Flutter的Text组件要求传入非空的String类型,空值触发了类型不匹配错误,导致表格无法正常渲染。

从控制台数据能看到,返回的列表数据中存在字段值为null的情况,而你的代码里直接用Text('${element.libelle}')这类写法,没有处理空值。

解决方案

针对这个问题,有几种直接有效的处理方式:

  • 单个字段空值兜底:在使用字段时,用??运算符给null值设置默认空字符串,修改表格中的Text组件代码:

    Text(element.libelle ?? '')
    // 或者保留字符串插值的写法:
    Text('${element.libelle ?? ''}')
    

    把所有可能为null的字段都加上这个兜底处理,比如element.otherField ?? ''。

  • 提前预处理数据:在拿到服务器返回的数据后,先遍历列表,把所有可能为null的字符串字段替换为空字符串,再传给表格使用:

    // 假设你的数据是自定义对象列表
    processedData = originalData.map((item) {
      return YourModel(
        libelle: item.libelle ?? '',
        otherField: item.otherField ?? '',
        // 其他字段同理处理
      );
    }).toList();
    
  • 空安全类型转换:如果字段是可空String类型,也可以用类型转换结合兜底:

    Text((element.libelle as String?) ?? '')
    

验证方法

修改代码后重新运行项目,空值会被替换为默认空字符串,Text组件不会再触发类型错误,表格就能正常渲染服务器返回的数据了。

内容的提问来源于stack exchange,提问作者runetsensweb developpement web

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 10:55:16