如何为按钮定义onPressed属性

时间:2019-12-18 21:02:10

标签: flutter

这两个变体有什么区别?如果函数 _getCsvDocunent 只是空类型,那么如果我们像onPressed: () => _getCsvDocunent(),这样定义onPressed,那意味着什么?

FlatButton(
    child: Text('Provide .csv data file'),
    onPressed: _getCsvDocunent,
),

vs

FlatButton(
    child: Text('Provide .csv data file'),
    onPressed: () => _getCsvDocunent(),
),

1 个答案:

答案 0 :(得分:0)

  • onPressed:_getCsvDocunent中:onPressed获得对传递给它的_getCsvDocument的引用。仅当要传递的功能已经已定义并且与onPressed 兼容时,这种传递引用的方式才可能。
  • onPressed: () => _getCsvDocunent()中:onPressed获取由返回的值 _getCsvDocunent执行完毕后。
  • onPressed: () => _getCsvDocunent()中:onPressed得到的对_getCsvDocument的引用与第一个要点完全相似,不同之处在于,在这种情况下是函数引用(_getCsvDocument )直接传递onPressed,而不是使用内联函数返回对_getCsvDocument的引用。