20
votes

Valeur de constante non valide utilisant une variable comme paramètre

child: const Text('Calculate Client Fees',
                   style: TextStyle(fontSize: textSize),)

0 commentaires

5 Réponses :


4
votes

Comme @creativecreatorormaybenot l'a dit, vous utilisez const Text() c'est pourquoi vous devez y avoir une valeur const . Vous pouvez soit utiliser

Padding(
  padding: const EdgeInsets.all(value), // this value has to be a `const` because our padding: is marked const
  child: Text("HI there"),
);


Padding(
  padding: EdgeInsets.all(10), // any double value
  child: Text("HI there"),
);

ou

const textSize = 10.0;

Juste comme ce cas.

const double textSize = 10.0;


0 commentaires

45
votes

Vous déclarez votre widget Text tant que const , ce qui nécessite que tous ses enfants soient également const . Si vous souhaitez résoudre ce problème, vous ne devez pas utiliser de widget de Text const dans ce cas, car vous souhaitez passer une variable non const.

La raison en est que Flutter utilise le mot-clé const comme idicateur pour qu'un widget ne se reconstruise jamais car il sera évalué au moment de la compilation et une seule fois . Par conséquent, chaque partie de celui-ci doit également être constante.

double textSize = 10.04;
// ...
child: Text('Calculate Client Fees', style: TextStyle(fontSize: textSize))

En savoir plus à ce sujet dans cet article .


0 commentaires

0
votes

si vous souhaitez utiliser var ou double textSize = 10.0; alors le widget texte ne doit pas être un const. supprimer le const avant le texte ()

  child: Text('Calculate Client Fees', style: TextStyle(fontSize: textSize),)


0 commentaires

2
votes
child: Text('Calculate Client Fees',
                   style: TextStyle(fontSize: textSize),)

0 commentaires

0
votes

Dans dart, lorsque vous passez quelque chose en paramètre dans un constructeur const, le compilateur s'assure que la valeur définie par défaut n'est pas modifiée lors de l'exécution du code.

Par conséquent, l'avertissement de valeur constante non valide.

Pour résoudre ce problème, vous devez supprimer le mot clé const de devant le texte.


0 commentaires