1

过去当我用来提取具有按钮和 onPressed 方法的小部件时

我曾经将onPressed 方法采用的回调函数替换为具有Function 数据类型的变量

但是现在当我尝试在将颤振版本 升级到 2.0.4 后提取一个名为RoundedButton的小部件时,这是颤振的最新稳定版本。

它给了我这个错误:

**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),
          ),
        ),
      ),
    );
  }
}
4

2 回答 2

2

而不是它的旧类型:`

功能

我弄清楚了颤振 2.0.4 中使用的 onPressed 方法的类型

这是`

无效回调?

导入**dart:io**

于 2021-04-10T01:58:30.623 回答
0

使用最终的 VoidCallback onPressed;//final void Function() onPressed;

于 2021-08-02T13:04:41.620 回答