为什么 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
。感谢您解决这个问题!
我有一个 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
。感谢您解决这个问题!