【发布时间】:2022-01-01 12:19:24
【问题描述】:
我在我的项目中使用Hive- 包在本地存储一些数据。到目前为止一切正常,但现在我面临一个问题:
我有一个Custom-Class,它也有一个字段和另一个Custom-Class:
part 'hive_vitals_interface.g.dart';
@HiveType(typeId: 1)
class HiveVitals extends HiveObject {
@HiveField(0)
String? id;
@HiveField(1)
DateTime? date;
@HiveField(2)
List<HiveDiscomfort> otherDiscomfort;
@HiveField(3)
List<HiveDiscomfort> mentalDiscomfort;
HiveVitals({
this.id,
this.date,
this.otherDiscomfort = const [],
this.mentalDiscomfort = const [],
});
}
还有我的HiveDiscomforts-Class:
part 'hive_discomfort_interface.g.dart';
@HiveType(typeId: 2)
class HiveDiscomfort extends HiveObject {
@HiveField(0)
String? title;
@HiveField(1)
int? intensity;
HiveDiscomfort({
this.title,
this.intensity,
});
}
我正在尝试像这样保存 HiveVitals:
static Future<void> addVitals(HiveVitals hiveVitals) async {
final vitalsBox = getVitalsBox();
await vitalsBox.put(hiveVitals.date!.toIso8601String(), hiveVitals);
}
然后像这样检索它:
static List<HiveVitals> getVitals() {
Box<HiveVitals> box = getVitalsBox();
List<HiveVitals> hiveVitals = box.values.toList();
return hiveVitals;
}
问题:
我没有收到任何错误。事实上,当保存我的对象并在调试器中检查它时,一切都正确保存。但是,当重新启动应用程序时,我的 List<HiveDiscomfort> 字段总是再次为空!但是HiveVitals-Fields 的其余部分仍然正确保存!?
我在这里缺少什么?我不明白...任何帮助表示赞赏!如果您还需要什么,请告诉我!
还在 Github 上打开了issue。
【问题讨论】:
标签: flutter dart local-storage flutter-hive