【问题标题】:Lint don't override field in flutter皮棉不会覆盖颤振中的字段
【发布时间】:2022-01-06 01:06:07
【问题描述】:

我是使用 Lint 的新手,我的 UserModel 变量上有一条蓝色下划线,消息为 Don't override fieldsAnnotate overridden members。我很难理解示例文档中的“好”和“坏”规则。添加@override后我仍然收到相同的消息。

class UserModel extends UserEntity {
  final int id;
  final String? uid;
 
  const UserModel(
      {required this.id,
      this.uid})
      : super(
          id: id,
          uid: uid,
        );
}


//

class UserEntity extends Equatable {
  const UserEntity({
    required this.id,
    this.uid,
    this.provider,
   });

  final int id;
  final String? uid;
 
  static const empty = UserEntity(id: 0, uid: '');

  @override
  List<Object> get props => [id];
}

【问题讨论】:

  • overridden_fields lint 警告您正在覆盖字段。添加 @override 属性将无济于事。如果您不希望收到警告,请不要覆盖基字段,尽可能在派生类中使用 getter 和/或 setter,或者使用 // ignore: overridden_fields 来抑制 lint。另见github.com/dart-lang/linter/issues/2428

标签: flutter dart lint


【解决方案1】:

iduid 字段已在 UserEntity 类中定义,因此将它们再次声明为 UserModel 类中的字段是多余的。

class UserModel extends UserEntity {
  const UserModel({required int id, String? uid}) : super(id: id, uid: uid);
}

【讨论】:

    猜你喜欢
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    相关资源
    最近更新 更多