Dart json_serializable无法填充所需的构造函数参数.它被分配给一个被忽略的字段



我正在编写一个扑动应用程序,我需要序列化一个类json。类是:

@HiveType(typeId: 0)
@JsonSerializable()
class CartItem extends HiveObject {
@HiveField(1)
String item_id;
@HiveField(2)
String name;
@HiveField(3)
SelectionsList selections;
@HiveField(4)
String special_instructions;
@HiveField(5)
int quantity;
@HiveField(6)
double amount;
@HiveField(7)
@JsonKey(ignore: true)
MenuItem item;
CartItem(this.item_id, this.name, this.selections, this.quantity, this.special_instructions, this.amount, this.item);
}

然而,由于item字段被忽略(有意的),当我尝试生成。Dart文件时,抛出此错误。Cannot populate the required constructor argument: item. It is assigned to an ignored field.我仍然需要它是在构造函数虽然,所以有一个解决办法吗?

所以我设法让这个工作。我不确定这是不是正确的方法,但如果它能帮助你,那就太好了。

@HiveType(typeId: 0)
@JsonSerializable()
class CartItem extends HiveObject {
...
@HiveField(7)
@JsonKey(ignore: true)
MenuItem item;
CartItem(this.item_id, 
this.name, this.selections, this.quantity, this.special_instructions, this.amount, 
[this.item = MenuItem.empty()]);
}

必须为构造函数项设置一个可选的位置,并给它一个默认值。您也可以将其设置为空,并省略构造函数项的默认值。

相关内容

  • 没有找到相关文章

最新更新