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

La fonction GCP Cloud pour écrire des données dans BigQuery s'exécute avec succès, mais les données n'apparaissent pas dans la table BigQuery

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

Le shell POSIX (sh) redirige stderr vers stdout et capture stderr et stdout dans des variables