如何在飞镖扑中创建回调函数?

时间:2019-07-31 03:16:36

标签: flutter dart

我有这种带有onTap参数的方法

myFunc({onTap}){
   return onTap;
}

然后,我需要像这样使用它

myFunc(
   onTap: print('lorem ipsum');
)

我该如何正确设置?谢谢

3 个答案:

答案 0 :(得分:3)

您可以按照以下方式进行操作。请注意,您可以指定参数,也可以避免,并且我已经添加了myFunc({Function onTap}){ onTap(); } //invoke myFunc(onTap: () {}); (可以使用ValueChangeVoidcallback

myFunc({Function onTap}){
   onTap("hello");
}

//invoke
myFunc(onTap: (String text) {});

如果要传递参数:

GetAllClients

答案 1 :(得分:1)

先前的解决方案使用命名参数使问题复杂化。这是最简单的函数,它采用回调函数,没有任何额外的复杂性:

testFunction(Function func){
    func();
}

void main() {
    testFunction( () {
        print('function being called');
    });
}

testFunction() 被定义为接受一个没有参数的函数(因此数据类型为 Function。当我们调用该函数时,我们传递一个匿名函数作为参数。

答案 2 :(得分:0)

这是一个为回调的参数添加类型安全的示例:

  void forEach(Function(T, int) cb){
    Node<T>? current = head;
    int index = 0;
    while (current != null){
      cb(current.value, index);
      index++;
      current = current.next;
    }
  }

调用:

list.forEach((v, i){
    print(v);
});