hive 保存信息时配置单元出现问题

olhwl3o2  于 2023-01-05  发布在  Hive
关注(0)|答案(2)|浏览(166)

希望创建一个函数,在单击按钮(保存)后保存信息
但配置单元给出错误... Screen of VS
错误在此行中:
静态框注解= Hive.box(配置单元键.注解键);
出现异常。配置单元错误(配置单元错误:框“notes”已打开,且类型为“框”。)

ctrmrzij

ctrmrzij1#

首先,你不能直接将配置单元数据输入到一个特定的模型中。你需要从这个框中获取动态数据,然后将这些数据转换为所需的类型。其次,你似乎已经在代码的某个地方打开了这个框。如果你能在打开配置单元框的地方共享代码,那就太好了

kwvwclae

kwvwclae2#

如果您想以列表形式存储数据,请按以下步骤操作

  • 步骤1:放入main.dart文件

等待配置单元。openBox(“配置单元表”);

  • 步骤2:创建一个包含hive适配器的模型类
part 'hive_clean_entity.freezed.dart';
 part 'hive_clean_entity.g.dart';
 @freezed
 @HiveType(typeId: 6, adapterName: "ContactCleanHiveAdapter")
 @freezed
 class HiveCleanEntity with _$HiveCleanEntity {
   const factory HiveCleanEntity({
     @HiveField(0) @Default("") String contactId,
     @HiveField(1) @Default("") String displayName,
     @HiveField(2) @Default("") String givenName,
     @HiveField(3) @Default("") String phoneNumber,
   }) = _HiveCleanEntity;

   factory HiveCleanEntity.initial() => const HiveCleanEntity(
         contactId: "",
         displayName: "",
         givenName: "",
         phoneNumber: "",
       );
 }

就像这样-你可以传递你选择的类型ID

  • 第3步:运行build_runner命令,以便生成2个模型dto文件

flutter发布运行build_runner监视--删除冲突输出

  • 第4步:现在打开你要存储数据的框:

列表放置列表= [];

HiveCleanEntity hiveCleanEntity = 
   HiveCleanEntity(
             contactId: “1”,
             displayName: "2",
             givenName: "xyz",
             phoneNumber:”+91”);

     putlist.add(hiveCleanEntity);

   final cleanContactBox = Hive.box<List>("hiveTable");
   cleanContactBox.put("subTable",putlist);
  • 步骤5:将数据放入本地存储

最终列表= cleanContactBox.get(“子表”)?.cast()??[];

我希望这是有帮助的:)

相关问题