参数类型 'Function' 无法分配给参数类型 'void Function(bool?)
The argument type 'Function' can't be assigned to the parameter type 'void Function(bool?)
当我制作应用程序时发生错误说-参数类型 'Function' 无法分配给参数类型 'void Function(bool?)?'。 Taskcheckbox 无状态小部件内 onChanged : toggleCheckState
表示无法分配函数 toggleCheckboxState
。
class task_tile extends StatefulWidget {
@override
State<task_tile> createState() => _task_tileState();
}
class _task_tileState extends State<task_tile> {
bool ischanged = false;
@override
Widget build(BuildContext context) {
return ListTile(
title: Text("This is a box",style: TextStyle(
decoration: ischanged ? TextDecoration.lineThrough:null
),
),
trailing: Taskcheckbox(ischanged,(bool checkboxState) {
setState(() {
ischanged = checkboxState;
});
}),
);
}
}
class Taskcheckbox extends StatelessWidget {
final bool checkboxState;
final Function toggleCheckboxState;
Taskcheckbox(this.checkboxState,this.toggleCheckboxState);
@override
Widget build(BuildContext context) {
return Checkbox(
activeColor: Colors.lightBlueAccent,
value: checkboxState,
onChanged:toggleCheckboxState,
);
}
}
你用这个
final Function toggleCheckboxState;
至
final Function(Object?) toggleCheckboxState;
请参考以下代码修改
@override
Widget build(BuildContext context) {
return Checkbox(
activeColor: Colors.lightBlueAccent,
value: checkboxState,
onChanged: (bool val) {
toggleCheckboxState();
},
);
}
您需要更改函数类型才能解决此问题
来自
final Function toggleCheckboxState;
到
final ValueChanged<bool?> toggleCheckboxState;
当我制作应用程序时发生错误说-参数类型 'Function' 无法分配给参数类型 'void Function(bool?)?'。 Taskcheckbox 无状态小部件内 onChanged : toggleCheckState
表示无法分配函数 toggleCheckboxState
。
class task_tile extends StatefulWidget {
@override
State<task_tile> createState() => _task_tileState();
}
class _task_tileState extends State<task_tile> {
bool ischanged = false;
@override
Widget build(BuildContext context) {
return ListTile(
title: Text("This is a box",style: TextStyle(
decoration: ischanged ? TextDecoration.lineThrough:null
),
),
trailing: Taskcheckbox(ischanged,(bool checkboxState) {
setState(() {
ischanged = checkboxState;
});
}),
);
}
}
class Taskcheckbox extends StatelessWidget {
final bool checkboxState;
final Function toggleCheckboxState;
Taskcheckbox(this.checkboxState,this.toggleCheckboxState);
@override
Widget build(BuildContext context) {
return Checkbox(
activeColor: Colors.lightBlueAccent,
value: checkboxState,
onChanged:toggleCheckboxState,
);
}
}
你用这个
final Function toggleCheckboxState;
至
final Function(Object?) toggleCheckboxState;
请参考以下代码修改
@override
Widget build(BuildContext context) {
return Checkbox(
activeColor: Colors.lightBlueAccent,
value: checkboxState,
onChanged: (bool val) {
toggleCheckboxState();
},
);
}
您需要更改函数类型才能解决此问题
来自
final Function toggleCheckboxState;
到
final ValueChanged<bool?> toggleCheckboxState;