【问题标题】:Calling multiple callbacks with Dart/Flutter使用 Dart/Flutter 调用多个回调
【发布时间】: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); },
  • 哇,我的疏忽太愚蠢了。你是对的。请将此添加为答案,我会接受!
  • 已经有人这样做了,你可以接受他的回答。只要您的问题得到解决就可以了 :)

标签: flutter dart


【解决方案1】:

在flutter中调用函数,你应该在函数名后面加上() function(); 而不是 function;js 中, () 表示对函数的调用。
没有()
您只是对该函数的引用,在 dart 中它有不同的
所以

onPressed: () {
  this.cancelCallback();
  Navigator.of(context).pop(false);
},

【讨论】:

    猜你喜欢
    • 2019-09-20
    • 2019-11-28
    • 2021-05-03
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2019-05-18
    相关资源
    最近更新 更多