我收到来自 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;
}
});
},
)
谁能帮我解决这个问题?
答案 0 :(得分:1)
如果你尝试
StatusEnum.PURPLE.toString()
,你会得到一个字符串“StatusEnum.PURPLE”。
为此,为了获得价值,我更喜欢并推荐使用 enum_to_string 包。它允许将枚举值作为字符串获取,而无需您的枚举名称,即 YourEnum.value
-> EnumToString.toString(YourEnum.value)
=> value
。
答案 1 :(得分:1)
下面的代码将描述枚举的实现:
enum Day {
monday, tuesday, wednesday, thursday, friday, saturday, sunday
}
void validateDescribeEnum() {
assert(Day.monday.toString() == 'Day.monday');
assert(describeEnum(Day.monday) == 'monday');
}