web-dev-qa-db-fra.com

Comment utiliser l'annotation @required sur les paramètres du constructeur Flutter?

Lorsque j'annote un paramètre constructeur avec @required IntelliJ affiche une erreur:

L'annotation doit être une référence de variable const ou une invocation de constructeur const

Quelqu'un peut-il suggérer ce que je fais mal?

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

Les annotations doivent être importées

Ajout en haut de votre fichier

import 'package:flutter/foundation.Dart';

devrait le réparer.

Les annotations que DartAnalyzer comprend sont fournies par le package meta .

Pour faciliter la tâche des développeurs Flutter, l'équipe Flutter a décidé d'ajouter le package meta au SDK Flutter et de le réexporter dans flutter/foundation.Dart. Les annotations par flutter sont donc exactement les mêmes que celles fournies par le méta package et vous pouvez également ajouter meta à vos dépendances dans pubspec.yaml et importer des annotations à partir de là si vous préférez. Si vous souhaitez réutiliser du code entre par exemple AngularDart et Flutter, c'est la méthode préférée car le code qui importe de package:flutter/... ne peut pas être utilisé dans les applications Web Dart.

24
Günter Zöchbauer

Veuillez importer le package "meta" au début du fichier source.

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

Votre code inclut-il le code suivant?

import 'package:meta/meta.Dart';

Si votre code contient le code ci-dessus et que vous obtenez des erreurs, vérifiez pubspec.yaml fichier:

dependencies:
  flutter:
    sdk: flutter

Si l'erreur persiste, essayez ce qui suit sur la CLI:

pub upgrade
1
booiljoung