嗨,我得到了简单的 observable 测试加载状态。
abstract class _AccountStore with Store {
@observable
bool loadingButtonStatus = false;
@observable
bool get loading => loadingButtonStatus;
@action
Future updateAccount(formData) async {
loadingButtonStatus = true;
Future.delayed(Duration(milliseconds: 2000)).then((future) {
loadingButtonStatus = false;
}).catchError((e) {
loadingButtonStatus = false;
print(e);
});
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的小部件
AccountStore store = AccountStore();
Observer(
name: 'loading_button',
builder: (_) => LoadingButton(
loading: store.loading,
text: Text('Save'),
onPressed: () {
store.updateAccount({});
},
))
Run Code Online (Sandbox Code Playgroud)
但每次我运行代码时,它总是返回给我: There are no observables detected in the builder function
我试过改变用途store.loadingButtonStatus还是一样。
任何解决方案?
谢谢。
Rah*_*rma 12
我有同样的问题,但上面的答案对我不起作用,而且代码也是正确的。我的part没有更新。
只需在终端中运行此命令
flutter packages pub run build_runner build
我希望这会起作用。
如果您使用 getter,则需要使用 @computed。
@observable
bool _loadingButtonStatus = false;
@computed
bool get loading => _loadingButtonStatus;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4260 次 |
| 最近记录: |