我最近升级了Flutter项目及其所有依赖项。
之前我使用的是bloc: ^6.1.1
,现在升级到了bloc: ^8.0.1
。但是transformEvents
在8.0.0版本中被删除了,代码中是这样使用的。
@override
Stream<Transition<LoginEvent, LoginState>> transformEvents(
Stream<LoginEvent> events,
transitionFn,
) {
final observableStream = events;
final nonDebounceStream = observableStream.where((event) {
return (event is! EmailChanged && event is! PasswordChanged);
});
final debounceStream = observableStream.where((event) {
return (event is EmailChanged || event is PasswordChanged);
}).debounceTime(Duration(milliseconds: 500));
return super.transformEvents(
nonDebounceStream.mergeWith([debounceStream]), transitionFn);
}
我检查了一下,它被删除了,取而代之的是EventTransformer
。现在我在理解transformEvents
将如何被它取代方面遇到了问题。
我在网上查了一下,但是不能让它工作。任何帮助都是很好的。谢谢!
1条答案
按热度按时间qpgpyjmq1#
你应该提供一个自定义的
EventTransformer
,而不是弃用的transformEvents
。请参阅此问题了解更多细节和示例-https://github.com/felangel/bloc/issues/2915你的代码应该看起来像这样:
Mapper是EventMapper(您的事件处理程序)的示例。