我有一个需要保存的配置单元对象列表,其中还有另一个配置单元对象列表,例如:
@freezed
class CorrectionDestination extends HiveObject with _$CorrectionDestination {
CorrectionDestination._();
@HiveType(typeId: 4)
factory CorrectionDestination({
@HiveField(0) required int stepId,
@HiveField(1) required String stepTitle,
@HiveField(2) required String stepType,
@HiveField(3) required bool isCurrentStep,
@HiveField(4) required int projectStepId,
@HiveField(5)
@JsonKey(defaultValue: [])
required List<DestinationResults> results,
}) = _CorrectionDestination;
factory CorrectionDestination.fromJson(Map<String, dynamic> json) =>
_$CorrectionDestinationFromJson(json);
}
我的目的地结果看起来像是
@freezed
class DestinationResults extends HiveObject with _$DestinationResults {
DestinationResults._();
@HiveType(typeId: 5)
factory DestinationResults({
@HiveField(0) required int stepResultId,
@HiveField(1) required String stepResultTitle,
}) = _DestinationResults;
factory DestinationResults.fromJson(Map<String, dynamic> json) =>
_$DestinationResultsFromJson(json);
}
当我try 将列表转换为LIST时,会出现问题:
final box = await Hive.openBox<List<CorrectionDestination>>('correctionDestinations');
虽然我可以清楚地看到print语句中的对象(如果我们将从OpenBox函数中删除泛型类型):
final availableDestinations = box.get(inspectionId);
print(availableDestinations);
我已经仔细判断了我的适配器,并有以下Flutter doctor 输出:
[✓] Flutter (Channel stable, 3.16.3, on macOS 14.2 23C64 darwin-arm64, locale en-UA)
• Flutter version 3.16.3 on channel stable at /Users/lesha/fvm/versions/3.16.0
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision b0366e0a3f (5 weeks ago), 2023-12-05 19:46:39 -0800
• Engine revision 54a7145303
• Dart version 3.2.3
• DevTools version 2.28.4