Flutter使用camera插件出现Use a function declaration警告如何解决?
问题原因
这个警告是Dart官方最佳实践的lint规则触发的,你当前采用「变量赋值匿名函数」的方式定义onChanged,不符合规范要求的「用函数声明的方式为函数绑定名称」。
解决方法
直接将现有匿名函数赋值的写法,替换为普通Dart函数声明即可,修改后的代码如下:
Widget _cameraTogglesRowWidget() { final List<Widget> toggles = <Widget>[]; // 替换原有final onChanged = 匿名函数的写法为正式函数声明 void onChanged(CameraDescription? description) { if (description == null) { return; } onNewCameraSelected(description); } // 此处保留你后续的原有逻辑即可 }
补充说明
- 调整为函数声明的写法除了可以直接消除警告,还能明确标注函数的返回值类型,代码可读性更强
- 若你确实有特殊业务场景需要把函数作为变量赋值给其他对象,也可以选择在
analysis_options.yaml中关闭对应lint规则,不过更推荐优先遵循官方最佳实践调整写法
# 仅特殊场景使用,不推荐主动关闭该规则 linter: rules: prefer_function_declarations_over_variables: false
内容的提问来源于stack exchange,提问作者Maahdi.Codes
相关产品推荐
相关产品推荐

