微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何避免在 flutter-hive 中为嵌套模型编写多个适配器

如何解决如何避免在 flutter-hive 中为嵌套模型编写多个适配器

问题 我正在尝试在配置单元中保存嵌套模型,并为每个对象/模型注册多个适配器。有没有最简单的方法来执行这样的操作?

我们可以减少这些多行代码,因为它们都是相互依赖的,比如:

var count = 1;
var int = setInterval(()=>{
    console.clear();
    console.log("the number will be raised up");
    console.log(count);
    count++;
},100)

代码示例

class AlbumData extends HiveObject {
//example
  @HiveField(0)
  String? _listeners;
  @HiveField(1)
  String? _playcount;
  @HiveField(2)
  Wiki? _wiki;
  @HiveField(3)
  Tracks? _tracks;
  @HiveField(4)
  List<Image>? _image;
  @HiveField(5)
  Tags? _tags;
}

期待 由于 // during initialization,I have to register multiple adapters //otherwise can't save object await Hive.initFlutter(); Hive ..registeradapter<AlbumData>(AlbumDataAdapter()) ..registeradapter<Wiki>(WikiAdapter()) ..registeradapter<Tracks>(TracksAdapter()) ..registeradapter<Track>(TrackAdapter()) ..registeradapter<Tags>(TagsAdapter()) ..registeradapter<Tag>(TagAdapter()) ..registeradapter<ArtistDetail>(ArtistDetailAdapter()) ..registeradapter<Streamable>(StreamableAdapter()) ..registeradapter<Image>(ImageAdapter()); await Hive.openBox<AlbumData>(musicAlbumBoxName); 已经用 AlbumData 扩展,所以我期待这样的事情:

HiveObject

图书馆:

    await Hive.initFlutter();
    Hive
    ..registeradapter<AlbumData>(AlbumDataAdapter()); 
    //Rest of the adapters should automatically attached
    await Hive.openBox<AlbumData>(musicAlbumBoxName);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。