为什么Flutter mobX商店代码不会生成?

时间:2019-05-27 19:44:54

标签: flutter dart code-generation mobx

我有一家mobx商店,这真的很受欢迎,并且错过了生成我的storename.g.dart的机会。

第一次,我从媒介中复制了一个示例,只是一直运行生成器,直到最终提供了代码。

第二次,我写了自己的商店忘记了abstract关键字。加入它,它的工作。

我认为那是问题所在。

现在,第三个项目,我想我所有的代码都写完了,但是仍然没有生成。动作很多,但没有输出。

是什么使它工作或失败?这是我目前的黑手党

import 'package:mobx/mobx.dart';
import 'package:firebase_auth/firebase_auth.dart';

// have this line
// then generate with
// flutter packages pub run build_runner build
// or
// flutter packages pub run build_runner clean; flutter packages pub run build_runner build --delete-conflicting-outputs

// todo edit this file name
part 'usermodel.g.dart';

class UserModel = UserModelBase with _$UserModel;

abstract class UserModelBase implements Store {
  @observable
  FirebaseUser user;

  @action
  setUser(FirebaseUser u){
    user = u;
  }

  dispose() {}
}

2 个答案:

答案 0 :(得分:1)

Store应该用作混合。

要做:

abstract class Foo with Store {}

不要:

abstract class Foo implements Store {
  void dispose() {} 
} 

答案 1 :(得分:0)

除了有用的@Remi posted,我还想添加一个答案。

当我复制示例时,我已经复制了pubspec.yaml中的条目,并指定了mobx 0.1.4,后者将Store定义为

abstract class Store {}

但是,当我做第三个项目时,我添加了mobx:,但没有版本,它变成了0.2.0,将Store定义为一个

mixin Store {
  void dispose() {}
}

然后需要将关键字implements更改为with。感谢您弄清楚!