我对颤音很陌生(对冷冻包来说更是如此.)因此,我希望这个问题是相关的。
下面是我的usecase:用户可以是不同组的成员。用户类共享。我有问题要处理与冷冻剂的关系:
@freezed
abstract class User with _$User {
const factory User({
@required UniqueId id,
Name firstname,
Name lastname,
@required EmailAddress email,
@required bool emailVerified,
}) = _User;
}
@freezed
abstract class Member extends User with _$Member { // Here is the issue
const factory Member({
@required UniqueId id,
@required Name displayname,
String photo,
List roles,
String status,
DateTime expiration,
}) = _Member;_$Member.copyWith‘('$MemberCopyWith函数()’)不是'_$User.copyWith‘('$UserCopyWith函数()’)的有效覆盖。
怎样才是正确的方法?
发布于 2020-12-12 08:31:52
您必须使用Implements标记并使User成为一个正常的抽象类。但考虑到你的情况,我认为最好做以下几件事。
abstract class UserBase {
UniqueId get id;
Name get firstname;
Name get lastname;
EmailAddress get email;
bool get emailVerified;
}
@freezed
abstract class User with _$User {
@Implements(UserBase)
const factory User({
@required UniqueId id,
Name firstname,
Name lastname,
@required EmailAddress email,
@required bool emailVerified,
}) = _User;
}
@freezed
abstract class Member with _$Member {
@Implements(UserBase)
const factory Member({
@required UniqueId id,
Name firstname,
Name lastname,
@required EmailAddress email,
@required bool emailVerified,
@required Name displayname,
String photo,
List roles,
String status,
DateTime expiration,
}) = _Member;
}请随时询问任何问题。
https://stackoverflow.com/questions/64515254
复制相似问题