web-dev-qa-db-ja.com

Flutterコンストラクターパラメーターで@requiredアノテーションを使用する方法は?

@requiredを使用してコンストラクターパラメーターに注釈を付けると、IntelliJでエラーが表示されます。

注釈は、const変数参照またはconstコンストラクター呼び出しのいずれかでなければなりません

誰かが私が間違っていることを提案できますか?

class StatusBar extends StatelessWidget {
  final String text;

  const StatusBar({Key key, @required this.text})
      : assert(text != null),
        super(key: key);

  @override
  Widget build(BuildContext context) {
    //...
  }
}
12
Duncan Jones

アノテーションをインポートする必要があります

ファイルの先頭に追加

import 'package:flutter/foundation.Dart';

それを修正する必要があります。

DartAnalyzerが理解する注釈は、 meta パッケージで提供されます。

Flutter開発者が簡単に行えるように、FlutterチームはmetaパッケージをFlutter SDKに追加し、flutter/foundation.Dartに再エクスポートすることにしました。したがって、flutterによる注釈は、メタパッケージで提供される注釈とまったく同じであり、pubspec.yamlの依存関係にmetaを追加し、必要に応じてそこから注釈をインポートすることもできます。たとえば、AngularDartとFlutterの間でコードを再利用する場合は、package:flutter/...からインポートするコードをDart Webアプリケーションで使用できないため、推奨される方法です。

24

ソースファイルの先頭にあるパッケージ「meta」をインポートしてください。

// @required is defined in the meta.Dart package
import 'package:meta/meta.Dart';
14
madeinQuant

コードには次のコードが含まれていますか?

import 'package:meta/meta.Dart';

コードに上記のコードが含まれていてエラーが発生する場合は、pubspec.yamlファイル:

dependencies:
  flutter:
    sdk: flutter

エラーが続く場合は、CLIで次を試してください。

pub upgrade
1
booiljoung