我已经将一个作为枚举创建的对象设置为用'freezed'创建的不可变对象的属性。此外,我还创建了一个扩展枚举对象的对象。虽然我希望它能正常工作,但我不能使用我创建的开关作为扩展,可能是由于'freezed'或枚举的影响。为什么我不能使用扩展getter?
// Package imports:
import 'package:hive/hive.dart';
part 'post_status.g.dart';
@HiveType(typeId: 10, adapterName: 'PostStatusAdapter')
enum PostStatus {
@HiveField(0)
deleted,
@HiveField(1)
active,
}
extension IsDeletedPostStatus on PostStatus {
bool get isDeleted => switch (this) {
PostStatus.deleted => true,
PostStatus.active => false,
};
}
part 'post_object.freezed.dart';
part 'post_object.g.dart';
@freezed
class PostObject with _$PostObject {
@HiveType(typeId: 1, adapterName: 'PostObjectAdapter')
const factory PostObject({
@HiveField(0) required String? text,
@HiveField(1) required PostStatus? postStatus,
}) = _PostObject;
const PostObject._();
}
这里发生错误(当它不存在时)。
if(postObject.postStatus.isDeleted){
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
1条答案
按热度按时间hgb9j2n61#