【问题标题】:Dart - how to pass a function as an argumentDart - 如何将函数作为参数传递
【发布时间】:2019-07-18 11:54:53
【问题描述】:

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

myFunction1(){
   // do some things
}

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

然后调用myWidget(myFunction1)。但它不起作用,我相信这是正常的。该函数被正确执行并尝试给出结果。但是我不希望函数现在因为它的结果而被执行,我有点想传递函数的“引用”。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:
    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,
     );
    }
    

    【讨论】:

      【解决方案2】:
        Widget myWidget(Function onPress){
            return FlatButton(
                onPressed : onPress,
                child: Text('Button'),
            );
        }
      
      
       myWidget((){
      //your code...
       });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-21
        • 2020-09-09
        • 2017-09-06
        • 2014-06-29
        • 1970-01-01
        • 2021-01-14
        • 2016-07-23
        相关资源
        最近更新 更多