'''
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,
);
}
}
'''
在我制作應用程式時,發生錯誤說 - 無法將引數型別“Function”分配給引數型別“void Function(bool?)?”。在 onChanged:toggleCheckState 處的 Taskcheckbox 無狀態小部件內部表示無法分配功能 toggleCheckboxState 。
uj5u.com熱心網友回復:
你需要改變你的函式型別來解決這個問題
從
final Function toggleCheckboxState;
到
final ValueChanged<bool?> toggleCheckboxState;
uj5u.com熱心網友回復:
你用這個
final Function toggleCheckboxState;
到
final Function(Object?) toggleCheckboxState;
uj5u.com熱心網友回復:
請參考以下代碼更改
@override
Widget build(BuildContext context) {
return Checkbox(
activeColor: Colors.lightBlueAccent,
value: checkboxState,
onChanged: (bool val) {
toggleCheckboxState();
},
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/400071.html
