当http get失败时,我希望显示一个AlertDialog。函数showDialog(https://api.flutter.dev/flutter/material/showDialog.html)有一个"@required BuildContext context"参数,但我想从我的异步函数getNews()调用AlertDialog,该函数没有上下文值。
类比Java,在没有所有者的情况下使用null来使用对话框,我尝试将上下文值设置为null,但它不被接受。
这是我的代码:
类比Java,在没有所有者的情况下使用null来使用对话框,我尝试将上下文值设置为null,但它不被接受。
这是我的代码:
Future<dynamic> getNews() async {
dynamic retVal;
try {
var response = await http.get(url));
if (response.statusCode == HttpStatus.ok) {
retVal = jsonDecode(response.body);
}
} catch (e) {
alertDlg(?????????, 'Error', e.toString());
}
return
retVal;
}
static Future<void> alertDlg(context, String titolo, String messaggio) async {
return showDialog<void>(
context: context,
barrierDismissible: false, // user must tap button!
builder: (BuildContext context) {
return AlertDialog(
title: Text(titolo),
...
);
}