首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >方法“transform”未在超类中定义

方法“transform”未在超类中定义
EN

Stack Overflow用户
提问于 2021-09-02 11:58:02
回答 1查看 149关注 0票数 1

我是flutter_bloc模式的初学者,我正在尝试使用bloc进行文本搜索。问题是当我在下面使用这段代码时:

代码语言:javascript
复制
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错误的更新代码吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-05 01:04:33

改用transformEvents

代码语言:javascript
复制
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,
    );
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69029839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档