[英]How to get value from enum in flutter
我收到了 API 的回復,我定義了一個這樣的枚舉
enum StatusEnum { EMPTY, STATUS, PURPLE }
final statusEnumValues = EnumValues({
"کنسل شده": StatusEnum.EMPTY,
"اتمام": StatusEnum.PURPLE,
"در انتظار پرداخت": StatusEnum.STATUS
});
但是當我在我的代碼中使用它時,我收到錯誤“無法將參數類型“StatusEnum”分配給參數類型'String'。這是我使用的代碼:
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;
}
});
},
)
任何人都可以幫助 mo 解決這個問題嗎?
如果您嘗試StatusEnum.PURPLE.toString()
,您將得到一個字符串“StatusEnum.PURPLE”。
為此,為了獲得唯一的價值,我更喜歡並推薦使用enum_to_string package。 它允許將枚舉值作為字符串獲取,而無需您的枚舉名稱,即YourEnum.value
-> EnumToString.toString(YourEnum.value)
=> value
。
下面的代碼將描述枚舉的實現:
enum Day {
monday, tuesday, wednesday, thursday, friday, saturday, sunday
}
void validateDescribeEnum() {
assert(Day.monday.toString() == 'Day.monday');
assert(describeEnum(Day.monday) == 'monday');
}
更新 Dart 2.15:
enum Status {
failed,
pending,
}
您可以在枚舉上使用name
屬性。
String status = Day.failed.name; // 'failed'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.