此代码是我的输入页面:
child: ReusableCard(
onPress: (){
setState(() {
selectGender=Gender.male;
});
},
cardChild: IconContent(icon: FontAwesomeIcons.mars,label: 'Male',),
colour: selectGender==Gender.male? activeCardColor:inactivecolor,
),
另一页:onpress 功能不起作用。
class ReusableCard extends StatelessWidget {
ReusableCard({@required this.colour,this.cardChild,this.onPress});
final Color? colour;
final Widget? cardChild;
final Function? onPress;
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: onPress,
child: Container(
child: cardChild,
margin: EdgeInsets.all(15),
decoration: BoxDecoration(
color: colour,
borderRadius: BorderRadius.circular(10.0),
),
),
);
}
}
我提供屏幕截图以便您更好地理解
最佳答案
因为小部件的 onTap
被定义为 void Function()? onTap
,需要返回该值才能使用(作为回调)。所以使用:
onTap: ()=> onPress,
您还可以将onPress
定义为VoidCallback?
,那么您只需:
onTap: onPress,
关于flutter - 参数类型 'Function?' 无法分配给参数类型“void Function()?”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70458163/