我知道这听起来很简单,我看了文档中给出的例子,但不知何故,我不能把它做对。
这是我的
void main() async {
await Hive.initFlutter();
//Hive.openBox('workoutBox');
runApp(const MyApp());
}
...
下一屏面:
var box;
...
尝试添加到框中
Future<void> _save() async{
// save doc id somewhere
final Id = doc.id;
//box = await Hive.openBox('workoutBox');
box.put("Id", Id);
}
尝试在另一个函数中检索:
var someId = box.get("Id");
当前错误:对null调用了get
我的困惑是,在这种情况下,你在哪里/如何声明,打开和从盒子里取回?
3条答案
按热度按时间icnyk63a1#
您似乎忘记初始化Box参数并将openBox函数返回的值赋给它。
配置单元初始化后,您应该有这样的内容:
假设您像这样保存数据:
通过像这样添加数据,分配给该值的键将是一个自动递增的键,因此尝试使用一个从未分配过的特定键检索该值将失败。
如果您添加了如下数据:
那么您将能够使用预期的密钥成功地获取它。
waxmsbnn2#
您可以执行以下操作:
pnwntuvh3#
我已经写了an example app和一个Flutter Cubits + Hooks + Hive DB教程,其中有以下
AppDatabase
类: