在过去,当我提取具有按钮和onPressed方法的小部件时,
我曾经用一个function数据类型的变量替换onPressed方法使用的回调函数
但现在,当我在将flutter版本升级到2.0.4后尝试提取一个名为RoundedButton的小部件时,这是最新的稳定版本的flutter。
它给了我一个错误:
**The argument type 'Function' can't be assigned to the parameter type 'void Function()?'.**
这是代码onPressed: onPressed,
行下有红线的代码:
class RoundedButton extends StatelessWidget {
final String title;
final Color color;
final Function onPressed;
RoundedButton(
{required this.onPressed, required this.color, required this.title});
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.symmetric(vertical: 16.0),
child: Material(
color: color,
borderRadius: BorderRadius.all(Radius.circular(30.0)),
elevation: 5.0,
child: MaterialButton(
onPressed: onPressed,
minWidth: 200.0,
height: 42.0,
child: Text(
title,
style: TextStyle(color: Colors.white),
),
),
),
);
}
}
而不是原来的类型:`
函数
我弄清楚了在颤振2.0.4 中使用的onPressed方法的类型
是`
VoidCallback?
导入**dart:io**
库
使用按下时的最终VoidCallback;//final void Function((on按下;