У меня есть код в Model
для выполнения. Я предоставляю Model
с Provider
. Но если Model
удаляется до завершения выполнения, я получаю ошибку:
E / flutter (26180): [ОШИБКА: flutter / lib / ui / ui_dart_state.cc (148)] Необработанное Исключение: AМодель использовалась после утилизации. E / flutter (26180): после того, как вы вызвали dispose () для модели, он больше не может использоваться.
Например, Model
удаляется, если пользователь нажимает кнопку возврата, так что Navigator.pop()
,Это потому, что Model
является только областью действия для этого виджета.
Но это означает, что я не могу поймать ошибку в 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();
}
);
…
Как яможет поймать ошибку в модели после утилизации?