问题描述
在我的窗口小部件中,我将函数回调作为参数传递给窗口小部件:
onTap: onTapRestaurantItemCallback
onTapRestaurantItemCallback: () { // Handling the callback method }
我正在使用Lint for Dart / Flutter检查我的代码: https://pub.dev/packages/lint
lint对我的功能参数不满意,并给我一个错误,我违反了规则:
argument_type_not_assignable
“不能将参数类型'Function'分配给参数类型'void Function()'” https://dart.dev/tools/diagnostic-messages#argument_type_not_assignable
显然,问题在于小部件“ onTap”期望为空,而回调函数返回的是Future。
我可以通过以下方式使小部件中的错误消失:
onTap: () => onTapRestaurantItemCallback
但是我的函数回调停止工作了。
您知道我如何像我一样将函数回调传递给我的小部件并仍然保持 arguments_type_not_assignable 皮棉规则?
下面,我在上述情况下粘贴了更完整的代码:
// WIDGET USED BY OTHER WIDGET BELOW
class RestaurantItem extends StatelessWidget {
// FUNCTION CALLBACK
final Function onTapRestaurantItemCallback;
const RestaurantItem({
// FUNCTION CALLBACK
@required this.onTapRestaurantItemCallback,});
@override
Widget build(BuildContext context) {
return GestureDetector(
// FUNCTION CALLBACK
onTap: onTapRestaurantItemCallback,// CONTAINING SCREEN WIDGET - USING WIDGET ABOVE
// .... //
RestaurantItem(
// FUNCTION CALLBACK
onTapRestaurantItemCallback: () => { // Handling the callback method }
),
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)