如何解决dart 冻结默认为空类
@freezed
class ABCModel with _$ABCModel {
factory ABCModel({
@JsonKey(name: "id") @Default('') String id,@JsonKey(name: "name") @Default('') String name,}) = _ABCModel;
factory ABCModel.fromJson(Map<String,dynamic> json) => _$ABCModelFromJson(json);
}
@freezed
class EFGModel with _$EFGModel {
factory EFGModel({
@JsonKey(name: "abc") @Default(ABCModel()) ABCModel abc,//empty ABCModel
}) = _EFGModel;
factory EFGModel.fromJson(Map<String,dynamic> json) => _$EFGModelFromJson(json);
}
如果 EFGModel 得到一个空的或空的 abc json 值,什么是合适的值放在 @Default()
冻结注解上,@Default(ABCModel())
是不正确的
解决方法
注意下面的 Player.blank() 构造函数。像这样...
@freezed
class Player with _$Player {
Player._();
factory Player({
@Default('') String handle,@Default('') String realname,Contact? contactinfo,@Default(false) bool emailverified,@Default(false) bool showemail,@Default(false) bool showphone,@Default('') String avatarurl,DateTime? datejoined,@Default(0) int transactions,DateTime? datelasttransaction,DateTime? datelastlogin,@Default([]) List<String> tags,@Default([]) List<String> leagues,@Default([]) List<String> events,@Default(0) int views,@Default(0) int likes,@Default(0) int loginfails,@JsonKey(ignore: true) @Default('') String password,@JsonKey(ignore: true) @Default('') String confirm,required Meta meta,}) = _Player;
factory Player.blank() => Player(contactinfo: Contact(),meta: Meta());
factory Player.fromJson(Map<String,dynamic> json) => _$PlayerFromJson(json);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。