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

Flutter Retrofit报错:Null不是String子类型,如何解决?能否同File传Null?

问题解决方案

一、解决‘null is not subtype of type 'string'’错误

这个错误的核心是你声明的字段为非空String类型,但实际传入了null,Dart的类型系统不允许这种赋值。解决方法有三种:

  • 将字段类型改为可空字符串类型:String?,这样该字段既可以接收String值,也能接收null。
  • 直接使用dynamic类型作为字段类型:不过后续使用该字段时,建议先做类型判断(比如if (field is String)),避免其他类型错误。
  • 给字段设置默认空字符串:如果业务上不允许传null,可以在定义时给字段赋值默认值'',避免null传入。

二、发送File时传递null数据

完全可以,只要后端接口对应的参数允许接收null值即可。以Dart中常用的dio包上传FormData为例,直接在Map中传入null字段即可:

var formData = FormData.fromMap({
  'upload_file': await MultipartFile.fromFile('/path/to/file'),
  'nullable_param': null, // 这里直接传递null
});
await dio.post('/upload', data: formData);

如果使用原生http包,同样可以在请求体(或FormData)中包含null值的字段,只要后端能正确解析即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:35:22