如何在 dart flutter 中创建回调函数?

Ash*_*tav 5 dart flutter

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

myFunc({onTap}){
   return onTap;
}
Run Code Online (Sandbox Code Playgroud)

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

myFunc(
   onTap: print('lorem ipsum');
)
Run Code Online (Sandbox Code Playgroud)

我怎样才能正确地做到这一点?谢谢

Bla*_*nka 17

你可以像下面这样做。请注意,您可以指定参数或避免,并且我已添加Function(您可以使用ValueChangeVoidcallback

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

//invoke
myFunc(onTap: () {});
Run Code Online (Sandbox Code Playgroud)

如果要传递参数:

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

//invoke
myFunc(onTap: (String text) {});
Run Code Online (Sandbox Code Playgroud)


Pra*_*rma 7

更详尽的用法可能是这样的

void main() {
  callbackDemo(onCancel: () {
     print("Cancelled");
  }, onResend: () {
     print("Resend");
  }, onSuccess: (otp) {
     print(otp);
 });
}

void callbackDemo({required onSuccess(String otp), 
onCancel, onResend}) {
  onCancel();
  onResend();
  onSuccess("123456");
}
Run Code Online (Sandbox Code Playgroud)