After upgrading to Flutter 1.25.0-8.1.pre null safety is enabled by default and I started to modify the code of my project. Everything is working fine except functions passed as parameters like in the following example:
class AppBarIcon extends StatelessWidget {
  final IconData icon;
  final Function onPressed;
  const AppBarIcon({Key? key, required this.icon, required this.onPressed}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return CupertinoButton(
      child: Icon(icon, size: 28, color: Colors.white),
      onPressed: onPressed,
    );
  }
}
onPressed is a required parameter so it cannot be null but nevertheless I get an error when trying to pass the function to the CupertinoButton:
The argument type 'Function' can't be assigned to the parameter type 'void Function()?'.
I am already searching quite long for an answer and a possible solution but I haven't found one yet. Any help would be much appreciated.
You are passing a Function() value to a void Function() parameter like it says. Change your declaration to final void Function() onPressed; so that the typing is a closer match and can't possibly return a null or take args. Save this answer.
You are passing a Function() value to a void Function() parameter like it says.  Change your declaration to final void Function() onPressed; so that the typing is a closer match and can't possibly return a null or take args.
You could have just added the parenthesis to the function declaration like so, Function() the updated code is below.
class AppBarIcon extends StatelessWidget {
  final IconData icon;
  final Function() onPressed;
  const AppBarIcon({Key? key, required this.icon, required this.onPressed}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return CupertinoButton(
      child: Icon(icon, size: 28, color: Colors.white),
      onPressed: onPressed,
    );
  }
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With