参数类型 'Function' 无法分配给参数类型 'void Function()?'

The argument type 'Function' can't be assigned to the parameter type 'void Function()?'

import 'package:flutter/material.dart';
import 'package:ourchatapp/constants.dart';

class RoundedButton extends StatelessWidget {
  final String text;
  final Function press;
  final Color color, textColor;
  const RoundedButton({
    Key? key,
    required this.text,
    required this.press,
    this.color = kPrimaryColor,
    this.textColor = Colors.white,
  }) : super(key: key);
  @override
  Widget build(BuildContext context) {
    Size size = MediaQuery.of(context).size;
    return Container(
      margin: EdgeInsets.symmetric(vertical: 10),
      width: size.width * 0.8,
      child: ClipRRect(
        borderRadius: BorderRadius.circular(29),
        child: newElevatedButton(),
      ),
    );
  }
  Widget newElevatedButton() {
    return ElevatedButton(
      child: Text(
        text,
        style: TextStyle(color: textColor),
      ),
      onPressed: press,
      style: ElevatedButton.styleFrom(
          primary: color,
          padding: EdgeInsets.symmetric(horizontal: 40, vertical: 20),
          textStyle: TextStyle(
              color: textColor, fontSize: 14, fontWeight: FontWeight.w500)),
    );
  }
}

我想设计自己的按钮,当我把它添加到相关页面时,出现这样的错误,当我点击按钮时,它不会在页面之间切换。 我在欢迎屏幕上创建了登录和注册按钮,但是当我单击这些按钮时,它们不会切换到相关页面。请帮助我

您已将 press 声明为 Function 类型,因此您更改 -

onPressed: press,

至-

onPressed: () => press(),

您将通过这些方式调用该函数,它会更改页面。

尝试将 press 类型从 Function 更改为 VoidCallback,因此您的 press 参数应如下所示:

final VoidCallback press

或者试试这个:

onPressed : press.call()