使用函数声明将函数绑定到名称

Maa*_*des 7 flutter flutter-plugin flutter-widget flutter-ios flutter-android

我是颤振的新手。我正在使用相机插件将相机添加到我的应用程序中。我收到此警告使用函数声明将函数绑定到名称。我该如何解决这个问题?

代码 -

Widget _cameraTogglesRowWidget() {
    final List<Widget> toggles = <Widget>[];

    final onChanged = (CameraDescription? description) {
      if (description == null) {
        return;
      }

      onNewCameraSelected(description);
    };
Run Code Online (Sandbox Code Playgroud)

Gab*_*oas 12

Dart 的有效使用文档表明,使用函数声明构造比使用匿名函数赋值是更好的做法。

那是

int foo() =>  1
Run Code Online (Sandbox Code Playgroud)

代替

int Function() foo = () => 1
Run Code Online (Sandbox Code Playgroud)

在您的示例中,这意味着声明一个函数 onChanged,而不是对 onChanged 执行赋值:

void onChanged(CameraDescription? description){
  ...body
}
Run Code Online (Sandbox Code Playgroud)

您看到此警告的原因是,自 Flutter 2.3.0 起, flutter_lints 默认与任何 flutter 应用程序一起打包。

有关 Dart lint 和有效用法的更多信息,请参阅有效 Dart:用法Dart lint 列表的文档。具体来说,您看到的警告位于prefer_function_declarations_over_variables