HiveError:此对象当前不在框中。尝试将配置单元对象保存在另一个配置单元对象的列表中时
Posted
技术标签:
【中文标题】HiveError:此对象当前不在框中。尝试将配置单元对象保存在另一个配置单元对象的列表中时【英文标题】:HiveError: This object is not currently in a box. When trying to save a hive object in a list in another hive object 【发布时间】:2022-01-04 16:00:47 【问题描述】:我正在开发一个带有 Flutter 和 Hive 本地 nosql 数据库的应用程序。
我创建了一个 hive 对象,其中包含另一个 hive 对象的列表。
这是第一个对象:
@HiveType(typeId: 0)
class FirstObject extends HiveObject
@HiveField(0)
late String string;
@HiveField(1)
late DateTime dateTime;
@HiveField(2)
late List<SecondObject> secondObject = [];
这是第二个对象:
@HiveType(typeId: 1)
class SecondObject extends HiveObject
@HiveField(0)
late String something;
@HiveField(1)
bool boolean = false;
@HiveField(2)
late DateTime? date;
我为这两个对象生成了适配器并注册了它们,但我只为包含第二个对象的第一个对象生成了一个框。
然后是一个列表变量,表示第一个对象中的列表,并创建了一个列表视图构建器,该构建器具有列表图块和一个复选框,用于更新第二个对象中的布尔值,然后保存它。
但是当我测试它时,它给了我一个错误提示:
The following HiveError was thrown while handling a gesture:
This object is currently not in a box.
我尝试了一些解决方案,例如为第二个对象制作另一个框,并在第二个对象中声明一个变量,其中包含属于的第一个对象。但是这些解决方案给了我其他错误。
这个问题的最佳解决方案是什么?
【问题讨论】:
我投票结束这个问题是因为:很长的 Q - 比同一位作者自己回答的要长(他注意到解决了他的问题的新事实) - 这个 Q 对其他用户没有价值 【参考方案1】:现在我意识到我可以保存第一个容器对象而不仅仅是第二个对象。
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于HiveError:此对象当前不在框中。尝试将配置单元对象保存在另一个配置单元对象的列表中时的主要内容,如果未能解决你的问题,请参考以下文章
HiveError:无法读取,未知 typeId:32。您是不是忘记注册适配器?