在 onPressed 或 Ontap 上调用不带括号的函数和带括号的函数有什么区别?
我只知道不能在 onPressed 上使用括号调用 void 函数。
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
),
Run Code Online (Sandbox Code Playgroud)
_incrementCounter 有 void 返回类型
void _incrementCounter() {
setState(() {
_counter++;
});
}
Run Code Online (Sandbox Code Playgroud)
但我没有找到任何适当的文件。
_incrementCounterinsideonPressed是一个函数引用,这基本上意味着它不是立即执行的,它是在用户单击特定小部件后执行的。(回调)
_incrementCounter() 是一个函数调用,它会立即执行。
因此,onPressed您可以在内部传递函数引用或匿名函数作为回调。
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
),
Run Code Online (Sandbox Code Playgroud)
或者
floatingActionButton: FloatingActionButton(
onPressed: () {
// Add your onPressed code here!
},
tooltip: 'Increment',
child: Icon(Icons.add),
),
Run Code Online (Sandbox Code Playgroud)
这不是特定于 dart 的东西,它也可以用javascript许多其他语言完成:
| 归档时间: |
|
| 查看次数: |
1991 次 |
| 最近记录: |