Flutter(Dart)数据类型为Function?的可选参数和默认值

izj3ouym  于 2023-08-07  发布在  Flutter
关注(0)|答案(1)|浏览(204)

因此,我尝试为我的项目创建一个自定义的小部件,类的一些示例将需要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();
  }
}

字符串

41ik7eoe

41ik7eoe1#

您可以将函数设置为空,而不是将函数作为必需参数,因为大多数onClick回调都接受可空函数,因此您可以轻松处理。

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作为回调函数,你可以这样使用它。第一个月

相关问题