我想使用Hive作为本地数据库进行存储。这是我的模型类
import 'package:flutter/material.dart';
import 'package:hive/hive.dart';
part 'addForm.g.dart';
@HiveType(typeId: 0)
class AddForm extends HiveObject{
@HiveField(0)
String title;
@HiveField(1)
String description;
@HiveField(2)
int fieldNumber;
@HiveField(3)
String question;
@HiveField(4)
Widget fieldType;
@HiveField(5)
bool required;
}
我使用这个命令:“flutter packages pub run build_runner build”来生成.g.dart文件,但它没有生成。
我尝试了所有的方法,但没有任何工作,请帮助!
4条答案
按热度按时间wj8zmpe11#
HiveField
s可能只有Hive
直接支持的类型,或者是HiveType
s。Widget
两者都不是,这就是为什么你不能保存一个小部件,除非你自己写了一个相应的适配器。您的终端也应该将此显示为错误。
5fjcxozz2#
试试这个,不使用(typeId:0)..@HiveType()class MyNote extends HiveObject {}
slhcrj9b3#
这个答案是为了谁犯了同样的错误。
因为我遇到了同样的问题。在我的例子中,我的
part '..';
与类名相同,就像上面的代码一样。这不起作用,你应该将部分命名为你的file_name.dart
的名称,而不是在你的类ClassName
中。例如。
如果文件名为
add_form.dart
,则部件为part 'add_form.g.dart';
另外,hive不支持widget。
wlsrxk514#
我也遇到了同样的问题,我重新运行了同样的命令并生成了文件:)