web-dev-qa-db-fra.com

Fonctions d'extension de dard non trouvées

J'ai un projet sur Flutter et je veux utiliser beaucoup les méthodes de prolongation. J'ai mis à niveau pubspec.yaml Fichier à utiliser sdk: ">=2.6.0 <3.0.0". Je crée un fichier list_extensions.Dart avec contenu

import 'Dart:math';

extension ListExtension<T> on List<T> {

  T randomElement() => this.elementAt(Random().nextInt(this.length));

}

Lorsque j'essaie d'utiliser cette méthode d'extension dans d'autres fichiers comme celui-ci

String getRandomText(List<String> texts) => texts.randomElement();

Je vois une erreur de compilateur avec du texte: The method 'randomElement' isn't defined for the class 'List'.

Mais lorsque j'essaie d'utiliser cette méthode d'extension à l'intérieur list_extensions.Dart Fichier - Le compilateur est correct avec ça.

Ce n'est que mon autre projet peut trouver toutes les méthodes de vulgarisation que je déclare.

flutter doctor dit:

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, v1.10.17-pre.74, on Mac OS X 10.15 19A603, locale en-RU)
[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    ✗ Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.Android.com/studio/#downloads or visit https://flutter.dev/setup/#Android-setup for detailed instructions.
[✓] Xcode - develop for iOS and macOS (Xcode 10.2)
[✓] Android Studio (version 3.5)
[✓] Android Studio (version 3.4)
[✓] VS Code (version 1.39.2)
[✓] Connected device (1 available)

flutter --version dit:

Flutter 1.10.17-pre.74 • channel master • https://github.com/flutter/flutter.git
Framework • revision bcc93bca23 (6 days ago) • 2019-11-13 11:31:20 -0800
Engine • revision 31cd2dfca2
Tools • Dart 2.7.0

Que puis-je faire pour forcer le compilateur à voir mes méthodes d'extension?

11
Ilia Kurtov

Vous devez mettre à jour la version SDK dans PUBSPEC.YAML à 2.6

enter image description here

0
Jayadeep