Dart-如何将函数作为参数传递

时间:2019-07-18 11:54:53

标签: flutter dart

我想传递一个函数作为包含按钮的小部件的参数(传递的函数将在按钮的onPressed上执行)

myFunction1(){
   // do some things
}

myWidget(Function onPress){
    return FlatButton(
    onPressed : onPress,
    );
}

,然后调用myWidget(myFunction1)。但这是行不通的,我认为这是正常的。该函数已正确执行,并尝试给出结果。但是我不希望因为该函数的结果而立即执行该函数,我有点想传递该函数的“引用”。

2 个答案:

答案 0 :(得分:0)

  Widget myWidget(Function onPress){
      return FlatButton(
          onPressed : onPress,
          child: Text('Button'),
      );
  }


 myWidget((){
//your code...
 });

答案 1 :(得分:0)

Widget build(BuildContext context) {
return Scaffold(
  appBar: AppBar(
    title: Text('First Screen'),
  ),
  body: Center(
    child: myWidget(myFunction1),
  ),
 );
}

myFunction1() {
  print('called');
}

myWidget(Function onPressed) {
 return FlatButton(
   child: Text('FlatButton'),
   onPressed: onPressed,
 );
}