Flutter不适用于swtich语句的自定义枚举

问题描述 投票:0回答:1
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也无法正常工作。

flutter dart enums switch-statement
1个回答
0
投票

为什么不使用普通的枚举?

enum FlightScheduleStatus { None, OnTime, Delayed }
© www.soinside.com 2019 - 2024. All rights reserved.