首页 > 解决方案 > Flutter - 转换颤振 bloc 事件以添加去抖动

问题描述

我正在尝试使用颤振块制作一个无限列表。

我从这里参考:https ://github.com/felangel/bloc/blob/926029cae2d7614d38b5a9a8952e36bb59054b02/examples/github_search/common_github_search/lib/src/github_search_bloc/github_search_bloc.dart#L15

根据这篇文章,要在两个事件之间添加延迟以便 api 不会被垃圾邮件发送,您需要覆盖transformEvents并添加 debounce 到这样的事件:

@override
  Stream<GithubSearchState> transformEvents(
    Stream<GithubSearchEvent> events,
    Stream<GithubSearchState> Function(GithubSearchEvent event) next,
  ) {
    return (events as Observable<GithubSearchEvent>)
        .debounceTime(
          Duration(milliseconds: 300),
        )
        .switchMap(next);
  }

我面临的问题是 Observable 已被 RxDart 弃用,我不确定如何完成上述要求。

标签: flutterdartblocrxdartflutter-bloc

解决方案


我找到了解决方案。

@override
  Stream<Transition< GithubSearchEvent, GithubSearchState >> transformEvents(
      Stream< GithubSearchEvent > events, transitionFn) {
    return events
        .debounceTime(const Duration(milliseconds: 300))
        .switchMap((transitionFn));
  }

推荐阅读