首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Freezed从父类继承

如何使用Freezed从父类继承
EN

Stack Overflow用户
提问于 2020-10-24 15:52:34
回答 1查看 2.2K关注 0票数 6

我对颤音很陌生(对冷冻包来说更是如此.)因此,我希望这个问题是相关的。

下面是我的usecase:用户可以是不同组的成员。用户类共享。我有问题要处理与冷冻剂的关系:

代码语言:javascript
复制
@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函数()’)的有效覆盖。

怎样才是正确的方法?

EN

回答 1

Stack Overflow用户

发布于 2020-12-12 08:31:52

您必须使用Implements标记并使User成为一个正常的抽象类。但考虑到你的情况,我认为最好做以下几件事。

代码语言:javascript
复制
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;
}

请随时询问任何问题。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64515254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档