我有Model
执行代码。我Model
提供Provider
. 但是如果Model
在完成执行之前处理我得到错误:
E/flutter (26180): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] 未处理的异常:模型在被处理后被使用。E/flutter (26180):一旦你在模型上调用了 dispose(),它就不能再使用了。
例如Model
,如果用户按下后退按钮,则处置Navigator.pop()
。这是因为Model
仅适用于此 Widget。
但这意味着我无法捕捉到错误Model
?
我的代码:
class Model extends ChangeNotifier {
bool error = false;
func() {
try {
await execute();
error = false
} catch {
error = true;
print(e.toString());
}
}
}
class ExampleWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
builder: (context) => Model(),
child: Consumer<Model>(builder: (context, model, _) {
return FloatingActionButton(
child: model.error ? Icon(Icons.error) : Icon(Icons.check),
onPressed: () {
model.func();
}
);
…
处置后如何在模型中捕获错误?