我想使用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 文件,但它没有生成。
我尝试了一切,但没有任何效果,请帮忙!
这个答案是针对犯过同样错误的人的。
因为我也面临同样的问题。就我而言,我的
part '..';
与类名相同,就像上面的代码一样。这是行不通的,您应该将该部分命名为您的 file_name.dart
的名称,而不是您班级中的 ClassName
。
例如。
如果您的文件名是
add_form.dart
那么您的部分是 part 'add_form.g.dart';
另外,hive 不支持 widget。
HiveField
只能具有 Hive
直接支持的类型或者是 HiveType
。 Widget
都不是,这就是为什么除非你自己编写了相应的适配器,否则你无法保存小部件。
您的终端也应该将其显示为错误。
尝试这个,没有(typeId:0).. @HiveType() MyNote 类扩展了 HiveObject {}
一个简单的解决方案是首先清理构建缓存并获取依赖项。
清理缓存:
flutter clean
安装构建缓存:
flutter pub get
然后运行命令:
flutter pub run build_runner build
也遇到过这个问题。我通过添加 hive_generator 打包并再次运行构建运行程序来解决它。
我面临同样的问题,我重新运行相同的命令并生成文件:)