【发布时间】:2020-07-08 19:52:25
【问题描述】:
我正在尝试在 Dart 中制作一个可重复使用的 AlertDialog 并且能够制作一个。 UI 显示并且运行良好。这段代码中唯一的问题是,当我按下保存按钮时,它给出了以下错误:未处理的异常:类型“未来”不是“未来”类型的子类型。下面是我的AlertDialog 类:
enum alertDialogAction { cancel, save }
class Dialogs {
static Future<alertDialogAction> alertDialog(
BuildContext context,
String title,
String body,
) {
final action = showDialog(
context: context,
barrierDismissible: true,
builder: (BuildContext context) {
return AlertDialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
title: Text(title),
content: Text(body),
actions: <Widget>[
FlatButton(
onPressed: () =>
Navigator.pop(context,alertDialogAction.cancel),
child: Text("cancel")),
RaisedButton(
color: Colors.blueAccent,
onPressed: () =>
Navigator.of(context).pop(alertDialogAction.save),
child: Text(
"save",
style: TextStyle(color: Colors.white),
)),
],
);
});
return (action != null) ? action : alertDialogAction.cancel;
}
}
这是我在 index.dart 中的称呼:
final action=await Dialogs.alertDialog(context,"title", "body");
if (action == alertDialogAction.save){
//code runs
}
【问题讨论】:
-
我认为你的 textDialog 方法返回 Future
类型。但是在您的 Dialog 类中,您有 alertDialog。这将返回 Future 类型,现在将相等性与 alertDialogAction.save 进行比较。你能用 textDialog 方法更新你的问题吗? -
@VinothVino 谢谢你的回复,看来我这里复制了错误的代码。我复制了我的 textDialog 类的代码。它应该是等待 Dialogs.alertDialog。很抱歉造成混乱。
标签: flutter dart dialog flutter-alertdialog