类不会自动生成g.dart文件

问题描述 投票:0回答:1
import 'package:flutter/material.dart';
import 'package:hive/hive.dart';

part 'person_model.g.dart';

@HiveType(typeId: 1)
class PersonModel extends HiveObject {
  @HiveField(0)
  int personID = UniqueKey().hashCode;

  @HiveField(1)
  String personName = "";

  @HiveField(2)
  double personWeight = 0.0;

  @HiveField(3)
  double personHeight = 0.0;

  @HiveField(4)
  double personBMI = 0.0;

  @HiveField(5)
  bool personHasGoodBMI = false;

  PersonModel();

  PersonModel.create(this.personID, this.personName, this.personWeight,
      this.personHeight, this.personBMI, this.personHasGoodBMI);
}

由于某种原因,当我运行

dart run build_runner build
时,未生成
person_model.g.dart

我没有收到任何错误,实际上它给了我成功,但文件无处可寻。 我第一次遇到这种情况,能解释一下吗?

flutter dart hive
1个回答
0
投票

嗨,我通过像这样更改代码解决了这个问题

import 'package:flutter/material.dart';
import 'package:hive/hive.dart';

part 'person_model.g.dart';

@HiveType(typeId: 100)
class PersonModel {
  @HiveField(0)
  int personID = UniqueKey().hashCode;

  @HiveField(1)
  String personName = "";

  @HiveField(2)
  double personWeight = 0.0;

  @HiveField(3)
  double personHeight = 0.0;

  @HiveField(4)
  double personBMI = 0.0;

  @HiveField(5)
  bool personHasGoodBMI = false;

  PersonModel(this.personID, this.personName, this.personWeight,
      this.personHeight, this.personBMI, this.personHasGoodBMI);
}

要生成 .g.dart 文件,请使用

flutter pub run build_runner build --delete-conflicting-outputs

确保您的填充被命名为 person_model.dart

© www.soinside.com 2019 - 2024. All rights reserved.