【问题标题】:already changed the field to string, but still got error已经将字段更改为字符串,但仍然出现错误
【发布时间】:2020-11-04 16:45:01
【问题描述】:

为什么附加的 *img 有错误。它说 -参数类型'dynamic'不能分配给参数类型'String'.dartargument_type_not_assignable

【问题讨论】:

  • 尝试重启你的 vs 代码。

标签: json flutter dart model


【解决方案1】:

json['id']为例。 json 被声明为 Map,这意味着 json['id']dynamic 类型。您不能将动态分配给 UserModel 的字段 id,它是 String 类型的。

您应该先转换 json 值,然后再将其分配给 String:

return UserModel(
  id: json['id'] as String,
...
)

同样适用于其他领域。

【讨论】:

  • "您不能将动态分配给 UserModel 的字段 id,它是 String 类型的。"这取决于 OP 使用的 linter 规则,我们不知道。
  • Alex 的回答是正确的,UserModel 有它自己的规则。如果 id 是 String,json['id'] 应该转换为 String。从 Map 中读取显式是动态的值,如果模型不是动态的,则必须显式告诉值是什么类型。
猜你喜欢
  • 1970-01-01
  • 2020-06-23
  • 2019-07-09
  • 2019-06-01
  • 2018-12-14
  • 2019-11-29
  • 2017-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多