我在Inherited窗口小部件中有函数,我想将此函数与参数一起使用,但是我不知道该怎么做。例如,下面的函数可以很好地用于继承的小部件中:
final Function onTap;
但是我想使用以下内容:
final Function onTap(String name);
任何人都知道这是否可以通过某种方式完成,在这种情况下又如何?任何帮助或输入表示赞赏,谢谢!
答案 0 :(得分:2)
不确定这就是您要执行的操作
您可以使用typedef
定义回调接口。
import 'package:flutter/material.dart';
typedef void NameTapCallback(String name);
class FooWidget extends StatelessWidget {
final NameTapCallback onTap;
const FooWidget({Key key, this.onTap}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
RaisedButton(
onPressed: () {
onTap('Peter');
},
child: Text('Peter'),
),
RaisedButton(
onPressed: () {
onTap('Paul');
},
child: Text('Paul'),
)
],
);
}
}
// Usage:
var myFooWidget = FooWidget(
onTap: (name) {
print('$name tapped');
},
);
答案 1 :(得分:1)
您可以使用
onTap: () => onTap('foo')
代替
onTap: onTap
如果您想传递其他参数