转换 BLoC 中的冻结事件
Transform Freezed Events in BLoC
我想知道是否有办法使用 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());
如果有解决此问题的方法,请告诉我。如果没有,最好将此添加为功能请求。
有类似问题,
我本来在做
on<CustomEvent.RegularEvent>((event, emitter) {})
我通过将其更改为
来修复它
on<RegularEvent>((event, emitter) {})
你必须让你的事件 public 才能正常工作,我希望它能正常工作,但对我来说没问题。
我想知道是否有办法使用 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());
如果有解决此问题的方法,请告诉我。如果没有,最好将此添加为功能请求。
有类似问题, 我本来在做
on<CustomEvent.RegularEvent>((event, emitter) {})
我通过将其更改为
来修复它on<RegularEvent>((event, emitter) {})
你必须让你的事件 public 才能正常工作,我希望它能正常工作,但对我来说没问题。