2

是否可以在冻结时使用 FallBack/Unknown union contructor?

可以说我有这个工会:

@Freezed(unionKey: 'type')
@freezed
abstract class Vehicle with _$Vehicle {
  const factory Vehicle() = Unknown;
  
  const factory Vehicle.car({int someVar}) = Car;
  const factory Vehicle.moto({int otherVar}) = Moto;

  factory Vehicle.fromJson(Map<String, dynamic> json) => _$VehicleFromJson(json);
}

现在,我收到一个带有新“类型”的 JSON,例如“船”。

当我调用 Vehicle.fromJson 时,我得到了一个错误,因为这将落入开关的“FallThroughError”中。

是否有任何注释,就像我们对 JsonKey 所做的那样?

@JsonKey(name: 'type', unknownEnumValue: VehicleType.unknown)

我知道我们有一个“默认”构造函数,但该构造函数的“类型”是“默认”,因此“船”不会出现在该开关盒上。

谢谢

4

0 回答 0