Erreur Flutter : The values in a const list literal must be constants

Bonjour Antonin,

Je te remercie pour ton aide, c’est vraiment sympa !

Ma version de Flutter est la : 3.3.4.

J’aimerais bien vous partager mes lignes de code qui sont souligné en rouge mais le 24 octobre j’ai fait une capture d’écran pour envoyer à Quentin mais j’ai reçu un mail pour me dire que je ne peux pas envoyer d’images.

Maintenant je veux bien essayer de recopier les lignes du code et de le coller directement (sans faire de capture d’écran).

Row(

children: [

Icon(Icons.favorite, color: Colors.purpleAccent),

Text(" Purple Giraffe "),

Icon(Icons.favorite, color: Colors.purpleAccent),

],

),

C’est dans la vidéo « Exercice 1 : composer plusieurs éléments avec Row »

https://www.purplegiraffe.fr/courses/creer-des-apps-flutter-2020/lectures/27076502

Dans la vidéo ce sont les lignes de : 49 à 54.

Bien cordialement.

Salut @Bernard-T !

Merci pour ces précisions je vois que tu bloques sur les Widgets de bases de Flutter alors.
Pour t’aider il faudrait que tu nous disent quelle partie de ton code est surlignée en rouge et aussi quelle est l’erreur que Dart te renvoie ? Pour ça, place ta souris directement sur l’élément surligné en rouge
Exemple :


Ici j’ai essayé d’appeler un Widget qui s’appelle IciUneErreur mais bien-sûr ce widget n’existe pas en Flutter. Il me retourne donc une erreur qui me dire que mon Widget IciUneErreur n’est pas définit dans ma class _DealScreenState.

PS : Le text en rouge est une extension que j’ai installer sur mon VsCode. Toi c’est normal que tu l’ai pas. Ce permet d’afficher le text lors ce que j’ai une erreur sans venir placer ma souris dessus, on gagne du temps comme ça :wink:

Informations sur l’utilisation du forum :slight_smile:

  1. Les captures d’écran.
    Tu peux bien-sûr importer des captures d’écran pour nous aider, soit en glissant ta capture d’écran dans le champs ou tu est entrain d’écrire la réponse. Soit en appuyant sur Capture d’écran 2022-11-30 à 10.51.47 pour importer une image :slight_smile:

  2. Insertion de code.
    Il est également possible d’importer ton code directement ici en cliquant sur le bouton Capture d’écran 2022-11-30 à 10.53.03 , il t’affichera alors Capture d’écran 2022-11-30 à 10.53.40 et tu as juste à copier coller ton code à la place de ton « Texte préformaté ». Attention à ne pas supprimer les ` il servent à identifier le code formaté, il en faut un au début de ton code et un à la fin :slight_smile:

1 « J'aime »

Bonjour Maxime,

Je te remercie ainsi que toutes les personnes qui m’ont écrit pour essayer de m’aider, c’est vraiment sympa et j’espère que je pourrais faire autant pour les nouveaux dans quelques semaines ou mois.

Je viens de répondre à Antonin, apparemment j’ai réussi à mettre les lignes de code qui sont souligné en rouge, ça sera sûrement plus facile pour m’aider.

Je vais aussi répondre à @jmz je vais voir avec lui mais honnêtement je ne vois pas comment il peut m’aider car ce n’est pas un problème de motivation que j’ai, c’est plutôt un problème de version ou de logiciels je ne sais pas… Je trouve étonnant de voir que je n’arrive pas au même résultat avec le même code, il y a un truc.

Pourtant j’apprécie tes vidéos elles sont super, ça paraît simple mais… lol

Je vais peut-être reparti de zéro et commencer par « Dart » comme tu me l’a conseillé.

Bien cordialement.

Jusqu’à présent je répondais avec mes mails, je trouvais que c’était plus facile mais crois que je vais changer :smiley:
Merci !

1 « J'aime »

Ah je vois, c’est surement pour ça que tu ne pouvais pas poster d’image :wink: .

Concernant ton problème c’est super simple @Bernard-T , il suffit de jouer au jeu des 7 différences sauf que la il y en a qu’une.
C’est une erreur qui arrive souvent et je suis sûr que tu la referas, donc retiens bien l’erreur. Elle te dit « The values in a const list literal must be constants.Try removing the keyword ‹ const › from the list literal. »
Tout simplement : Tu ne peux pas mettre de Row dans une liste constante. Ici, ta liste en question c’est celle de ta Column.

Voila problème réglé chef :wink:

Ps: Pour aider les autres, pense à renommer le sujet de ton problème en haut avec une truc du style « Problème de Row dans une Column » par exemple et passe cette réponse en solution :wink: Ton problème pourras servir à d’autres :slight_smile:

1 « J'aime »

Bonjour JM,

Merci beaucoup pour ta réponse, c’est bien, je vois que tu m’en veux pas ! :joy:
C’est sympa de me donner ton adresse mail, merci.

Grâce à Antonin, j’ai appris comment mettre une capture d’écran sur ce forum, peut-être que je vais être débloqué.

bien cordialement.

Parfait Bernard, les choses progressent.
Pour ma part, je me cantonne plutôt à SwiftUi et Directus.
Bon courage à toi :wink:

Euh ! Je désolé mais soit je ne vois claire, soit je suis con mais je ne vois pas de différence entre mon code est la vidéo que voici :

Je remets mon code :

Si je comprends bien il faut séparé la liste Column de la liste Row ?
Si oui, comment ?

Bonjour,

Y’a un ‹ const › de trop ligne 38. Qui n’est pas sur le cours de Maxime :wink:

1 « J'aime »

Bonjour tu as raison mais si je l’enlève j’ai des lignes souligné en « bleu » qui apparaît.

C’est normal car tu as enlevé ton const.
A savoir :

  • Soulignement rouge = erreurs (impossible de build)
  • Soulignement bleu = informations/conseils (possible de build)

Dans ton cas tu as une Column et tu disais à Dart, « les enfants de cette column sont tous des constants » (en mettant const devant les [ ])

Si tu les retirent Dart il va te dire « Hey ! Ok tout les enfants de ta row ne sont pas des constantes mais les widget qui restent constants dans ton code, il faut me le dire » donc ce que tu fais, c’est que pour tous tes widgets qui restent constants tu rajoutes const devant (sauf la Row car elle ne peut jamais être constante tout comme les Column)

Ton code devrait ressembler à ça :

class Accueil extends StatelessWidget {
  const Accueil({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Column(children: [
        const Text("<3 Purple Giraffe <3"),
        const Icon(
          Icons.backup,
          size: 50.0,
          color: Colors.blue,
          semanticLabel: "Upluad vert le cloud", // Pour les mal-voyants
        ),
        const Text("<3 Purple Giraffe <3"),
        Row(
          children: const [
            Icon(Icons.favorite, color: Colors.purpleAccent),
            Text("Purple Giraffe"),
            Icon(Icons.favorite, color: Colors.purpleAccent),
          ],
        )
      ]),
    );
  }
}

Comme ça tu n’auras plus de soucis :wink:

2 « J'aime »

Merci et bravo ! Il y a plus de problème !
Mais pourquoi que dans la vidéo, il y a aucun " const " ?

Car la version de Flutter utilisée lors de l’enregistrement de la vidéo était différente et l’absence de const n’était pas notifiée par le compilateur (recommandations en bleu) donc j’ai gardé le code au plus simple pour ces premières vidéos de cours.

J’ai déplacé la fin de la conversation dans un nouveau sujet pour cette erreur spécifique.

2 « J'aime »