我有 2 個班級TasksTile和TaskCheckbox. 所以我需要將 2 個引數表單傳遞TasksTile給TaskCheckbox. 所以我創建了一個TaskCheckbox帶有 2 個引數的構造函式
我想從TasksTileas傳遞這些引數
// TasksTile class
return ListTile(
title: Text(
'data',
style: TextStyle(
decoration: isChecked ? TextDecoration.lineThrough : null,
),
),
trailing: TaskCheckbox(isChecked, checkboxCallBack), // passing those
);
我的功能:
// TasksTile class
void checkboxCallBack(bool checkboxState) {
setState(() {
isChecked = checkboxState;
});
}
我的建構式:
//TaskCheckbox class
TaskCheckbox(this.checkboxState, this.toggleCheckboxstate); // this is my constructor
final bool checkboxState;
final Function toggleCheckboxstate;
然后我只是將引數分配給代碼
//TaskCheckbox class
@override
Widget build(BuildContext context) {
return Checkbox(
activeColor: Colors.lightBlueAccent,
value: checkboxState, // this is the fisrt one and it is bool so it works fine.
onChanged: toggleCheckboxstate, // this is the seconde one it is a Fucntion and here is the problem
);
}
我在此處收到錯誤訊息onChanged: toggleCheckboxstate,:無法將引數型別“Function”分配給引數型別“void Function(bool?)?”。我認為問題出在這里,final Function toggleCheckboxstate;它在較舊的 flutter 中運行良好,但在最新版本中不起作用。
uj5u.com熱心網友回復:
嘗試:
trailing: TaskCheckbox(checkboxState: isChecked, toggleCheckboxstate: (bool checkboxState) {
setState(() {
isChecked = checkboxState;
});
});
uj5u.com熱心網友回復:
就我而言,這是解決方案:
TaskCheckbox({this.checkboxState, this.toggleCheckboxstate});
final bool? checkboxState;
final void Function(bool?)? toggleCheckboxstate; // here what had been chenged
然后也改變了功能
void checkboxCallBack(checkboxState) { //Removed bool from (bool checkboxState)
setState(() {
isChecked = checkboxState;
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/350633.html
