'Lint don't override field in flutter
I'm new in using Lint and I'm getting a blue underline on my UserModel
variables with a message of Don't override fields
and Annotate overridden members
. I'm having a hard time understanding the Good and Bad rules in the example docs. I still get the same message after adding @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];
}
Solution 1:[1]
The fields id
and uid
already are defined within the UserEntity
class so it is redundant to declare them again as fields in the UserModel
class.
class UserModel extends UserEntity {
const UserModel({required int id, String? uid}) : super(id: id, uid: uid);
}
EDIT: as of dart 2.17 you can simplify the above code by using super initializers.
class UserModel extends UserEntity {
const UserModel({required super.id, super.uid});
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |