Flutter和hive db如何使用flutter更新数据?

llycmphe  于 2022-11-29  发布在  Hive
关注(0)|答案(1)|浏览(543)
void deleteTask(int index) {
    setState(() {
      db.toDoList.removeAt(index);
    });
    db.updateDataBase();
  }

这是什么删除功能看起来像我怎样才能使编辑功能为hive使用flutter的方式如上所述?请帮助

vltsax25

vltsax251#

使用Hive数据库,有一个get()getAt()put()putAt()delete()deleteAt()方法,这些方法从它的official documentation得到了很好的记录。
Hive是一个基于键-值的数据库,默认情况下没有update()方法,但是您可以只使用提供的方法(getAt()putAt())来实现与相同的功能。
考虑到我在5索引上存储了一个“stringText”值,正如我们所知道的,要从一个框中获取它,我们可以执行以下操作:

String valueFromTheBox = box.getAt(5); // "stringText"

为了获得和更新这个值,我们只需要给valueFromTheBox变量赋一个新值,然后使用putAt()将它再次放在同一个键上,如下所示:

valueFromTheBox = "newValueTHatWillBePut";
box.putAt(5);

这将从字面上使一个更新方法,所以为了使一个完整的功能,实现,并根据你的情况我们可以做:

void updateTask(int index) {
 SetState(() {
  
  dynamic task = db.toDoList.getAt(index); // get previous task
  task = changeSomethingAndReturn(previousTask); // change/edit the task
  db.toDoList.putAt(index, task); // assign the task on same index 
 
  });
  
  db.updateDataBase();

}

您需要将changeSomethingAndReturn()方法替换为您的方法,该方法接受任务并对其进行更改,然后返回更改后的新方法。
注意:我不建议使用动态类型,因为你的问题中没有提到它,我正在使用它,但是你应该指定它的类型,这样你就不会出错了。

相关问题