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
Enregistrer un commentaire