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) {
//...
}
}
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.
Veuillez importer le package "meta" au début du fichier source.
// @required is defined in the meta.Dart package
import 'package:meta/meta.Dart';
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