Flutter 回调函数不适用于自定义键

Flutter 回调函数不适用于自定义键,flutter,dart,Flutter,Dart,尝试制作定制键盘 class KeyboardButton extends StatelessWidget { const KeyboardButton({required this.buttonChild, this.onPress}); final Function? onPress; final Widget buttonChild; @override Widget build(BuildContext context) { return GestureDe

尝试制作定制键盘

class KeyboardButton extends StatelessWidget {
  const KeyboardButton({required this.buttonChild, this.onPress});
  final Function? onPress;
  final Widget buttonChild;

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () => onPress,
      child: Container(child: buttonChild),
    );
  }
}
信息技术的使用

KeyboardButton(
  onPress: () => print('1'), // this doesn't work
  buttonChild: Column(...),
)

由于某种原因,回调不起作用。如何修复它?

我发现这里缺少两件事

一个是
final void Function()?onPress。因为之前没有准确地指定返回类型


秒为
onTap:onPress
。因为之前您只是返回函数变量,而不是调用
您的
onPress
函数。这也可以写成
onTap:()=>onPress?.call()

onTap:onPress,
@pskink错误:无法将参数类型“Function”指定给参数类型“void Function()因此,定义
onPress
的方法与定义方法相同-可以是
GestureTapCallback?
void Function?
@pskink,但有一点不同-onTap定义为
GestureTapCallback
,但IDE显示
类型:void Function()?
on
onTap
基本上
GestureTapCallback
定义为:-我的意思是
typedef GestureTapCallback=void Function()