flutter - 方法“转换”未在超类中定义
问题描述
我是flutter_bloc
模式的初学者,我正在尝试使用bloc
. 问题是当我在下面使用此代码时:
import 'package:rxdart/rxdart.dart';
import 'package:bloc/bloc.dart';
class SearchBloc extends Bloc<SearchEvent, SearchState> {
SearchRestaurantDataService searchRestaurantDataService;
@override
Stream<LoadedAllRestaurantState> transform(
Stream<LoadSearchRestaurantEvent> events,
Stream<LoadedAllRestaurantState> Function(LoadSearchRestaurantEvent event)
next) {
return super.transform( //Here getting error "The method 'transform' isn't defined in a superclass of 'SearchBloc'."
(events as PublishSubject<LoadSearchRestaurantEvent>)
.debounceTime(Duration(milliseconds: 1000)),
next);
}
}
在转换时出现错误,我知道此代码已过时,因为此代码在 1-2 年前。有人可以提供此transform
错误的更新代码。
解决方案
改为使用transformEvents
!
import 'package:rxdart/rxdart.dart';
@override
Stream<Transition<SearchEvent, SearchState>> transformEvents(
Stream<CounterEvent> events,
TransitionFunction<CounterEvent, SearchState> transitionFn,
) {
final nonDebounceStream =
events.where((event) => event is! LoadSearchRestaurantEvent);
final debounceStream = events
.whereType<LoadSearchRestaurantEvent>()
.throttleTime(const Duration(milliseconds: 1000));
return super.transformEvents(
Rx.merge([nonDebounceStream, debounceStream]),
transitionFn,
);
}
推荐阅读
- reactjs - 来自纯 JavaScript 应用程序的 Django Rest Framework 身份验证
- monaco-editor - 如何获取 Monaco Editor 的行数组
- asp.net-mvc - 从直接页面而不是从选项卡发布的 ASP.NET MVC 表单
- numpy - 从数据框索引值中删除字符串
- python - 从列表中添加数字
- angular - 当我的对象在没有引用的情况下被复制时停止工作
- assembly - ARMv7 中的 Unalias 命令?
- node.js - 在 NestJS HTTP 服务器中使用子进程时,受 CPU 限制的进程会阻塞工作池
- excel - Excel - 超过 500k 行的 Vlookup 公式 - 如何加快速度?
- swift - 使用谓词获取核心数据