Flutter配置单元-未处理的异常:类型“list< dynamic>”不是类型转换中类型“list< sourcestations>”的子类型

emeijp43  于 2021-06-25  发布在  Hive
关注(0)|答案(2)|浏览(395)

我在用这个包裹https://pub.dev/packages/hive
我想保存和检索配置单元中自定义对象的列表。
我已经试着接近了

await Hive.openBox<List<SourceStations>>(stationBox); //Open box
Box<List<SourceStations>> sourceStationsBox = Hive.box(stationBox); 
sourceStationsBox.put(stationBox, listSourceStation); //Saving list of custom object as listSourceStation
//Should probably give lenght of list of custom object
logger.d('station box list length is ${sourceStationsBox.get(stationBox).length}');

但我的错误率越来越低
e/Flutter(24061):[error:flutter/shell/common/shell.cc(199)]dart错误:未处理的异常:e/flatter(24061):类型“list”不是类型转换e/flatter(24061)中类型“list”的子类型:\0 boximpl.get(package:hive/src/box/box_impl.dart:43:26)e/Flutter(24061):#1
_sourcetodestinationpagestate.openstationbox
我试过检查这个解决方案,但没有得到足够的想法如何解决这个问题。
下面是我正在使用的配置单元版本
配置单元:^1.3.0
Hive抖动:^0.3.0+1
配置单元生成器:^0.7.0

lokaqttq

lokaqttq1#

“泛型类型参数,如 Box<List> 由于dart限制,不受支持。”作者文档中提到了这一点:https://docs.hivedb.dev/#/basics/boxes 在页面底部。

c9qzyr3d

c9qzyr3d2#

如果您不使用 ValueListenableBuilder ,您可以这样做:

await Hive.openBox<List<SourceStations>>(stationBox); //Open box
Box<List<SourceStations>> sourceStationsBox = Hive.box(stationBox); 
sourceStationsBox.put(key, listSourceStation); // key is a string
logger.d('station box list length is ${sourceStationsBox.get(key).length}');

相关问题