什么是flutter Hive相当于removeWhere?

Posted

技术标签:

【中文标题】什么是flutter Hive相当于removeWhere?【英文标题】:what is flutter Hive equivalent of removeWhere? 【发布时间】:2021-10-01 02:06:39 【问题描述】:

如何在 Flutter Hive 中删除 List 的值??

example list = [
record(
    name: 'john',
    class: 'Coffee',
  ),
record(
    name: 'sarah',
    class: 'Coffee',
  ),
record(
    name: 'rala',
    class: 'Water',
  ),
];

如您所见,我有多个值并想删除所有包含咖啡值的记录 但是 Hive dnt 有这样的功能可以做到这一点

编辑:我正在使用 Box.add 函数使用自动增量键添加值 我正在考虑删除 hiveb 中的所有框并将 var 中的所有更新列表放入 Hive,但我愿意接受其他更有效的方式或建议

感谢阅读本文的人

【问题讨论】:

添加您的蜂巢盒定义以及您在其中的 put() 条目的方式。 iam 使用 box.add 方法并自动使用增量键 【参考方案1】:

Hive 没有removeWhere,你应该使用Dart 方法来做某事

【讨论】:

我从字面上清除了 Box,所以值很清楚,但是当我用新键分配新值时,它 dsnt 接受它,因为重复的对象 @TonyHart 您应该通过键或 id 删除,例如使用 get 方法【参考方案2】:

所以我根据https://github.com/hivedb/hive/issues/738 到达了 Hive 仓库 如果你的需要和我一样,如果有人需要,我也想分享我的代码

List<BudgetCard> listDelete = localBudget.values.toList();
    for (int i = 0; i < listDelete.length; i++) 
      if (listDelete[i].budgetWallet == walletID) 
        localBudget.deleteAt(i);
      
    

感谢所有回答我问题的人!

【讨论】:

以上是关于什么是flutter Hive相当于removeWhere?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - 使用新的应用程序版本删除或删除 Hive

Flutter & Hive - 如何在 Hive 中保存重新排序的列表

Flutter 中 Hive 框中的记录过滤和排序

Flutter HiveDB 在 FutureBuilder 上使用框

基于 Hive 的 Flutter 文档类型存储

Flutter + Hive 检查 Future Builder 的框中是不是存在值