【发布时间】:2020-05-01 15:24:27
【问题描述】:
abstract class Enum<T> {
final T value;
const Enum(this.value);
}
class FlightScheduleStatus<int> extends Enum<int> {
const FlightScheduleStatus(int val) : super(val);
static const None = const FlightScheduleStatus(0);
static const OnTime = const FlightScheduleStatus(1);
static const Delayed = const FlightScheduleStatus(2);
}
Widget getFlightStates(LiveStatus liveStatus) {
switch (liveStatus.flightScheduleStatus) {
case FlightScheduleStatus.Delayed:
return Row(
children: <Widget>[
Text('Delayed'),
SizedBox(
width: 3,
),
Chip(
label: Text('${liveStatus.delayedTime}'),
backgroundColor: Colors.red,
),
],
);
break;
case FlightScheduleStatus.OnTime:
return Text('On Time');
break;
case FlightScheduleStatus.None:
return Text('N/A');
break;
}
}
在这里,我创建了带有自定义类的自定义枚举。但是当我们使用 switch 语句时并没有经过这里的任何情况。请在这个问题上帮助我。如果它是一个枚举类,我想按原样工作。
即使我使用liveStatus.flightScheduleStatus.value 它也不起作用。
【问题讨论】:
-
可以添加 liveStatus.flightScheduleStatus 和 liveStatus.flightScheduleStatus.value 吗?
-
我根据您的代码创建了一个示例,并且工作正常。看看this dartpad。
标签: flutter dart enums switch-statement