如何解决将回调函数作为参数传递给小部件,同时保持Lint规则“ argument_type_not_assignable”
在我的窗口小部件中,我将函数回调作为参数传递给窗口小部件:
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 举报,一经查实,本站将立刻删除。