我想知道是否有办法使用 Freezed 库正确设置 BLoC 事件。当您想将变压器添加到选定的事件中时会出现问题。
让我们考虑一下这种情况:
class CustomState {}
@freezed
class CustomEvent with _$CustomEvent {
const factory CustomEvent.regularEvent() = _RegularEvent;
const factory CustomEvent.eventWithTransformer() = _EventWithTransformer;
}
class CustomBloc extends Bloc<CustomEvent, CustomState> {
CustomBloc(CustomState initialState) : super(initialState) {
on<CustomEvent>((event, emitter) {
//handle Events
},
transformer: transformOnlyEventWithTransformer());
}
}
我怎样才能添加转换只是为了eventWithTransformer
?
on<CustomEvent.regularEvent>((event, emitter) {
//this won't work as ```CustomEvent.regularEvent``` is not a type
}
此外,您不能on<>
在一个集团中有两个具有相同事件的事件,因此以下内容也不起作用
on<CustomEvent>((event, emitter) {
event.whenOrNull(
regularEvent: () => // handle event
)
}
on<CustomEvent>((event, emitter) {
event.whenOrNull(
eventWithTransformer: () => // handle event
)
}, transformer: transformOnlyEventWithTransformer());
让我知道这个问题是否有任何解决方案。如果没有,最好添加此功能请求。