【发布时间】:2020-01-09 16:35:25
【问题描述】:
我正在尝试制作一个通用的 ConfirmWidget,但它不起作用。这是我的代码: 我的想法是在调用我的自定义小部件时传递“任何功能”。
class ConfirmWidget extends StatelessWidget {
final BuildContext context;
final String mensaje;
final Function btnSi;
ConfirmWidget({this.context, this.mensaje, this.btnSi});
@override
Widget build(BuildContext context) {
// TODO: implement build
return new AlertDialog(
title: new Text(mensaje),
actions: <Widget>[
new FlatButton(
onPressed: () => Navigator.of(context).pop(false),
child: new Text("No"),
),
new FlatButton(
onPressed: () {
btnSi == null ? Navigator.of(context).pop(true):btnSi;
},
child: new Text("Si"),
),
],
);
}
}
正在使用我的小部件:
Future<bool> confirmCancelar(BuildContext context) {
return showDialog(
barrierDismissible: false,
context: context,
builder: (_) => new ConfirmWidget(
mensaje: "¿Está seguro de cancelar la operación?",
context: context,
btnSi:()=>Navigator.pop(context),
),
);
}
有什么建议吗?提前致谢。
【问题讨论】:
-
不传函数,不如传值,用它来判断动作。
-
什么不起作用?对话框没有关闭?
-
我正在传递我自己的函数,但是... > 问题是我没有正确调用该函数。这是正确的方法: >...现在可以使用了...谢谢大家