flutter Hive .g.dart文件未生成

hmae6n7t  于 2023-04-07  发布在  Flutter
关注(0)|答案(4)|浏览(228)

我想使用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文件,但它没有生成。
我尝试了所有的方法,但没有任何工作,请帮助!

wj8zmpe1

wj8zmpe11#

HiveField s可能只有Hive直接支持的类型,或者是HiveType s。Widget两者都不是,这就是为什么你不能保存一个小部件,除非你自己写了一个相应的适配器。
您的终端也应该将此显示为错误。

5fjcxozz

5fjcxozz2#

试试这个,不使用(typeId:0)..@HiveType()class MyNote extends HiveObject {}

slhcrj9b

slhcrj9b3#

这个答案是为了谁犯了同样的错误。
因为我遇到了同样的问题。在我的例子中,我的part '..';与类名相同,就像上面的代码一样。这不起作用,你应该将部分命名为你的file_name.dart的名称,而不是在你的类ClassName中。
例如。
如果文件名为add_form.dart,则部件为part 'add_form.g.dart';
另外,hive不支持widget。

wlsrxk51

wlsrxk514#

我也遇到了同样的问题,我重新运行了同样的命令并生成了文件:)

相关问题