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

Flutter报错The argument type 'String?' can't be assigned to 'String'如何解决

报错原因

这个报错是Dart空安全特性导致的:你代码里的word.text是可空类型String?,而字符串拼接要求传入非空的String类型参数,两者类型不匹配因此触发编译错误。

解决方案

你可以选择以下任意一种方式修改代码:

  • 方案1:如果你能确定业务场景下word.text永远不会为空,可以使用空断言运算符!强转为非空类型:
    把拼接行修改为:
    text = text + (word.text!) + ' ';
    
  • 方案2:更稳妥的空值兼容写法,使用空值合并运算符??给空值场景设置兜底默认值(为空时用空字符串代替),避免运行时崩溃:
    把拼接行修改为:
    text = text + (word.text ?? '') + ' ';
    

修改后完整代码

static extractText(VisionText visionText) {
  String text = '';

  for (TextBlock block in visionText.blocks) {
    for (TextLine line in block.lines) {
      for (TextElement word in line.elements) {
        // 这里可替换为上述任意一种方案
        text = text + (word.text ?? '') + ' ';
      }
      text = text + '\n';
    }
  }

  return text;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:15:02