【发布时间】:2021-12-12 17:47:27
【问题描述】:
我正在尝试存储具有XFile 变量存储列表的自定义对象;来自名为image_picker 版本0.8.4+3 的包的跨平台图像表示。写错误时说我缺少 XFile 的适配器,这是可以理解的,但我很难决定如何为外部源文件类声明这样的适配器。
这是我的 Receipt 类,其中包含一些 XFile 的列表。
注意:我已经从 sn-p 中删除了无意义的变量。
@HiveType(typeId: 0)
class Receipt extends HiveObject with EquatableMixin {
Receipt({
List<XFile>? files,
}) {
this.files = files ?? <XFile>[];
}
@HiveField(6)
late final List<XFile> files;
@override
List<Object?> get props => [
files,
];
}
现在我在考虑两种可能的解决方案;一 - 从 XFile 复制整个源代码,添加 HiveType 和 HiveField 装饰器并从中生成适配器或两个 - 创建将从 XFile 扩展的类并添加类似这样的装饰器:
@HiveType(typeId: 1)
class XFileAdapter extends XFile with HiveObjectMixin {
// access fields and add decorators here
}
但我不知道如何在不覆盖每个字段的情况下向这些字段添加装饰器。即使我知道该怎么做,事实证明 XFile 没有自己的变量,我可以添加 Hive 装饰器,它只需要参数并将它们传递给 XFileBase 类,因为它进一步决定如何处理它们。
in this thread 提出了非常相似的问题,但唯一的建议是从头开始创建模仿源类的新类,这不能解决我的问题。
【问题讨论】:
标签: flutter imagepicker flutter-hive