为什么 Flutter mobX 存储代码不会生成?

Why won't Flutter mobX store code generate?

我有一个 mobx 商店,我的 storename.g.dart 生成真的很失败。

第一次,我从 medium 上复制了一个示例,然后 运行 一直保留生成器,直到它最终给出代码。

第二次写自己的store忘记abstract关键字了。添加它并且它起作用了。

我认为这就是问题所在。

现在,第三个项目,我想我已经完成了所有代码,但它仍然没有生成。许多动作但没有输出。

是什么让它成功或失败?这是我现在的 mobx

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() {}
}

Store 应该用作 mixin。

做:

abstract class Foo with Store {}

不要:

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

除了@Remi 发布的有用答案之外,我还想添加一个答案。

当我复制示例时,我复制了 pubspec.yaml 中的条目并指定了 mobx 0.1.4,它定义 Store 作为

abstract class Store {}

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

mixin Store {
  void dispose() {}
}

然后需要将关键字 implements 更改为 with。感谢您解决这个问题!