Chr*_*ris 7 local-storage dart flutter flutter-hive
我在项目中使用Hive - Package 在本地存储一些数据。到目前为止,一切都很好,但现在我面临一个问题:
我有一个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 [],
});
}
Run Code Online (Sandbox Code Playgroud)
和我的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,
});
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试这样保存: HiveVitals
static Future<void> addVitals(HiveVitals hiveVitals) async {
final vitalsBox = getVitalsBox();
await vitalsBox.put(hiveVitals.date!.toIso8601String(), hiveVitals);
}
Run Code Online (Sandbox Code Playgroud)
并像这样检索它:
static List<HiveVitals> getVitals() {
Box<HiveVitals> box = getVitalsBox();
List<HiveVitals> hiveVitals = box.values.toList();
return hiveVitals;
}
Run Code Online (Sandbox Code Playgroud)
问题:
我没有收到任何错误。事实上,当保存我的对象并在调试器中检查它时,所有内容都已正确保存。然而,当重新启动应用程序时,我的List<HiveDiscomfort>字段总是再次为空!但其余的HiveVitals-Fields 仍然保存正确!?
我在这里缺少什么?我不明白...任何帮助表示赞赏!需要帮助请叫我!
还在 Github 上开了一个问题。
小智 0
我认为这是软件包的问题,因为我也有同样的问题,一切正常,但重新启动应用程序后,数据就会消失。所以我在 hive flutter github 上问了这个问题,但还没有答案。所以我要求你在 hive flutter github 上提出一个问题,让他们知道这是我们面临的一个真正的问题。