在其他 dart 文件/类中清除后,Hive Box 未更新
我正在清理一个蜂巢盒并在下一行中更新它。 更新可以在同一个文件代码中看到(通过调试)。 但不知何故,对于其他无状态小部件/类/文件框是空的。
boxT.clear() ;
setState(() {
boxT.addAll({
[count2, totalEntries]
});});
每次按下特定按钮时清除该框的原因:我正在添加地图。 addAll() 只是创建另一个条目。我不想要它。我也尝试过 put 和 putall 但它们只显示值而不是键。
i am clearing a hive box and updating it in the very next line.
The update can be seen in the same file code (through debugging).
But somehow for the other stateless widget/class/file box is empty.
boxT.clear() ;
setState(() {
boxT.addAll({
[count2, totalEntries]
});});
Reason for clearing the box on everytime a specific button is pressed: I am adding a map. addAll() simply creates another entry. i dont want it. i have also tried put and putall but they are only showing the value and not the key.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为 Hive 不是状态管理工具,如果您向盒子添加/删除某些内容,则需要让状态知道。您应该有一个全局状态来监听来自该 Box 的更改。
ValueNotifier 的示例。
请注意,如果您有多个页面使用此框中的数据,我建议使用类似 Provider 和使用
ChangeNotifier
而不是ValueNotifier
或使用 flutter_bloc并拥有一个处理与 Hive 通信的存储库。That's because Hive is NOT a state management tool, if you add/remove something to/from your box, you need to let your state know. You should have a global state that listens to changes from that Box.
Example with a ValueNotifier.
Note that if you have multiple pages using the data from this box, I would recommend using something like Provider and having a
ChangeNotifier
instead of theValueNotifier
or using flutter_bloc and having a Repository that handles communication withHive
.