如何通过数据值过滤颤振中的 Hive 数据?

2 database hive dart flutter

在 Flutter 中,我使用ValueListenableBuilder小部件来获取配置单元数据列表,并尝试按数据值过滤我的数据。

例子:-

Key: 1

name(value) : mydata1

des(value) : mydescription1

value(value) : 1
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我想value(value)通过下拉帮助调用的数据值过滤数据,

喜欢:

if (value.compareTo(1) == 1){
 print('All First Value Data Showing Result');
}
Run Code Online (Sandbox Code Playgroud)

类似的东西:

Key: 1

name(value) : mydata1

des(value) : mydescription1

value(value) : 1
Run Code Online (Sandbox Code Playgroud)

ValueListenableBuilder mycode 图像

小智 6

您可以使用该where()函数简单地过滤列表。例子:

list.where((item) => item.value == 1)
    .forEach((item) => print('All First Value Data Showing Result'));
Run Code Online (Sandbox Code Playgroud)

这将过滤列表并仅保留值等于 1 的对象。

或者对于其他Box用于检索您的值的人,您可以这样做:

Box<Item> itemBox = Hive.box<Item>("Item");
itemBox.values.where((item) => item.value == 1)
       .forEach((item) => print('All First Value Data Showing Result'));
Run Code Online (Sandbox Code Playgroud)

希望这是你正在寻找的。


小智 5

这是简单的代码。

          var filteredUsers = monstersBox.values
          .where((Monster) => Monster.name == "Vampire")
          .toList();
      print(filteredUsers.length);
Run Code Online (Sandbox Code Playgroud)

这是我的课:

@HiveType(typeId: 0)
class Monster {
  @HiveField(0)
  String? name;
  @HiveField(1)
  int? level;
  Monster(this.name, this.level);
}
Run Code Online (Sandbox Code Playgroud)