所以我尝试为我的项目创建一个自定义小部件,并且该类的某些实例将需要 onFinish 函数。但是我似乎无法为函数数据类型设置默认值,它一直说:“可选参数的默认值必须是常量。”
我想要实现的目标有可能吗?谢谢
这是我的代码,这样你就可以看到我的内容:
class MyWidget extends StatelessWidget {
const MyWidget({
super.key,
this.title = "",
this.message = "",
this.actions = const [],
this.onFinished = () {},
});
final String title;
final String message;
final List<Widget> actions;
final Function onFinished;
@override
Widget build(BuildContext context) {
return Container();
}
}
您可以将 Function 设置为可为空,而不是将 Function 作为必需参数,并且由于大多数 onClick 回调都接受可为 null 的函数,因此您将很容易处理。
class MyWidget extends StatelessWidget {
const MyWidget({
super.key,
this.title = "",
this.message = "",
this.actions = const [],
this.onFinished,
});
final String title;
final String message;
final List<Widget> actions;
final Function? onFinished;
@override
Widget build(BuildContext context) {
return InkWell(onTap: onFinished, child: Container());
}
}
或者如果你想使用 onFinished Function 作为回调函数,那么你可以这样使用它。
onFinished?.call()