【发布时间】:2020-03-15 05:57:29
【问题描述】:
为什么async-await 在我的情况下不起作用?我在pageA中有一个按钮。点击后会弹出删除确认对话框。
一旦点击确认对话框中的Yes按钮,它将从服务器中删除数据并返回一个成功码,即101返回给PageA。
一旦pageA收到返回值,就会刷新ListView。
PageA 按钮
onTap: () async {
Navigator.pop(context);
var result = await PopUpDialog().showDeleteDialog();
if (result == 101) {
setState(() {
data.removeAt(index); // remove the index in listView
});
} else {
print('fjeodpedp');
}
},
PopUpDialog
class PopUpDialog {
var result;
Future<int> showDeleteDialog() async {
....
showDialog(
context: context,
builder: (BuildContext buildContext) {
return AlertDialog(
actions: <Widget>[
FlatButton(
color: Colors.orange,
child: Text('YES', style: TextStyle(color: Colors.white)),
onPressed: () async {
Navigator.pop(buildContext);
result = await _bloc.delete(); // delete server data
if (result == 101) {
return result;
}
},
),
FlatButton(
color: Colors.white,
child: Text('CANCEL'),
onPressed: () {
Navigator.of(buildContext, rootNavigator: true)
.pop('dialog');
},
)
],
....
});
return 111;
}
}
但问题是,一旦弹出删除确认对话框,我会得到 fjeodpedp。
【问题讨论】:
标签: listview flutter dart async-await