我有一家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() {}
}
答案 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
。感谢您弄清楚!