Comment obtenir la valeur d'enum en flutter

Je reçois une réponse de l'API et je définis un enum comme celui-ci

enum StatusEnum { EMPTY, STATUS, PURPLE }
final statusEnumValues = EnumValues({
"کنسل شده": StatusEnum.EMPTY,
"اتمام": StatusEnum.PURPLE,
"در انتظار پرداخت": StatusEnum.STATUS
});

mais quand j'utilise ceci dans mon code, j'obtiens l'erreur "Le type d'argument "StatusEnum" ne peut pas être affecté au type de paramètre 'String'. Voici mon code que j'utilise:

 Consumer<GetOrders>(
builder: (context, data, child) {
return ListView.builder(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: getOrders.allData.length,
itemBuilder: (context, index) {
try {
return Column(
crossAxisAlignment:
CrossAxisAlignment.end,
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.end,
children: [
Text(
data.allData[index].statuse,
style: TextStyle(
fontFamily:
"Vazir",fontWeight: FontWeight.bold),
),
],
),
],
);
} on Exception catch (_) {
print('never reached');
return null;
}
});
},
)

quelqu'un peut-il m'aider à résoudre ce problème?


Solution du problème

Si vous essayez
StatusEnum.PURPLE.toString(), vous obtiendrez une chaîne 'StatusEnum.PURPLE'.
À cette fin, pour obtenir uniquement de la valeur, je préfère et recommande d'utiliser le package enum_to_string. Il permet d'obtenir la valeur enum sous forme de chaîne, sans votre nom d'énumération, c'est-à-dire YourEnum.value-> EnumToString.toString(YourEnum.value)=> value.

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"