【发布时间】:2021-03-13 09:55:03
【问题描述】:
我正在使用我编写的一个实用程序类,它显示一个带有各种操作的警报对话框。对于每个操作,我可以使用onPressed 方法。以前我一直用它来简单地关闭警报对话框,例如:
onPressed: () => Navigator.of(context).pop(true)
这很好用,直到我想在触发Navigator 之前传递一个要触发的额外回调。当我将回调传递给此类时,我正在尝试类似:
onPressed: () {
this.cancelCallback;
Navigator.of(context).pop(false);
},
其中this.cancelCallback 是传递给此小部件类的VoidCallback。然而,这显然是错误的语法,Flutter 只是忽略了它并直接进入Navigator 逻辑。
这里的基本推理是,我希望在警报对话框中发生取消/接受事件之前传入要触发的任何回调逻辑。我不知道如何传入一个回调并同时触发这个Navigator 回调。
【问题讨论】:
-
你没有调用
cancelCallback函数,也许这就是它没有被触发的原因?onPressed: () { this.cancelCallback(); Navigator.of(context).pop(false); }, -
哇,我的疏忽太愚蠢了。你是对的。请将此添加为答案,我会接受!
-
已经有人这样做了,你可以接受他的回答。只要您的问题得到解决就可以了 :)