我有一个屏幕,用户可以输入一些他然后确认的号码。确认进行API调用。此调用可能会失败。当它失败时,我用AlertDialog
展示showDialog
。我想要的是,当用户解除对话框时,屏幕刷新/重新加载。输入数据应该被删除(还有一些其他的效果也应该被重置)。
我不确定实现这一目标的最佳方法是什么。
void _handleError(e) {
showDialog(
context: context,
builder: (BuildContext builder) {
return AlertDialog(
title: Text(e.toString()),
content: Text('Some content'),
);
},
);
// I'm guessing I should do something here?
}
// This is the handler for the confirm buttons `onPressed` field.
void _pay(context) {
double amount = double.parse(textFieldController.text);
apiClient
.createInvoice(amount)
.then((Map<String, dynamic> invoice) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) {
return Pay(invoice);
}),
);
}).catchError(handleError);
}
showDialog()
函数在被解雇时返回Future
。因此,您可以将then()
电话链接到showDialog()
并在那里进行清理。
void _handleError(e) {
showDialog(
context: context,
builder: (BuildContext builder) {
return AlertDialog(
title: Text(e.toString()),
content: Text('Some content'),
);
},
).then((_){
//do your clean up
_inputTextController.text = '';
});
}