Ima*_*ali 1 enums dart flutter
我在类中使用了枚举变量。现在我想为该类实现 toMap 和 fromMap 方法。
enter code here
Run Code Online (Sandbox Code Playgroud)
enum ColorNumber { inc, dec, none }
class CounterState extends Equatable {
int value;
ColorNumber ColorNumber;
CounterState({this.value, this.colorNumber});
@override
List<Object> get props => [value, colorNumber];
Map<String, dynamic> toMap() {
return {
'value': value,
'colorNumber': colorNumber.toMap(), //error to toMap
};
}
factory CounterState.fromMap(Map<String, dynamic> map) {
return CounterState(
value: map['value'],
none: ColorNumber.fromMap(map['colorNumber']), //error to fromMap
);
}
}
Run Code Online (Sandbox Code Playgroud)
简单地将枚举存储为代表其位置的 int 。
见下文
Map<String, dynamic> toMap() {
return {
'value': value,
'colorNumber': colorNumber.index,
};
}
Run Code Online (Sandbox Code Playgroud)
factory CounterState.fromMap(Map<String, dynamic> map) {
int val = map['colorNumber'];
return CounterState(
value: map['value'],
colorNumber: ColorNumber.values[val],
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2212 次 |
| 最近记录: |