【发布时间】:2022-01-05 18:54:15
【问题描述】:
我正在尝试从自定义小部件创建小部件,因此当我将参数传递给创建小部件的函数时,我需要设置 onPressed 函数,但按下它时不起作用。
A类:
final Future Function(BuildContext context, Key newKey, String title) myFunction = _functionToPass;
setState(() {
_widgetList.add(_MyCustomWidget.createCustomWidget(_title, _isChecked, myFunction));
});//This works, the widget appears on my screen.
Future _functionToPass(BuildContext context, Key newKey, String taskTitle) =>
showDialog(......);
B类:
class MyCustomWidget {
StatefulBuilder createCustomWidget(title, isChecked, myFunction) {
return StatefulBuilder(
builder: (BuildContext context, StateSetter setState) {
return ListTile(
title: Text(title),
leading: Checkbox(
value: isChecked,
onChanged: (bool? newValue) {
setState(() {
isChecked = newValue!;
});
},
),
trailing: TextButton(
child: Icon(Icons.edit),
onPressed: () async {
print("Hi"); //This is printing correctly
await myFunction; //the function is not calling
},
),
);
});
}
}
【问题讨论】:
标签: flutter parameter-passing future