【问题标题】:Flutter bloc migration颤振块迁移
【发布时间】:2022-10-05 02:22:13
【问题描述】:

我在迁移到新版本的 flutter_bloc 时遇到问题。 这个:

Stream<NewsState> mapEventToState(NewsEvent event) async* {
    if (event is FetchTopAndOtherNewsEvent) yield* _repository.fetchTopAndOtherNews(event);
    if (event is FetchNewsEvent) yield* _repository.fetchNews(event);
  }

我重写为:

class NewsBloc extends Bloc<NewsEvent, NewsState> {
  final NewsRepository _repository = NewsRepository();
  NewsBloc() : super(NewsInitialState()){
    on((event, emit) {
      if (event is FetchTopAndOtherNewsEvent) emit(_repository.fetchTopAndOtherNews(event));
      if (event is FetchNewsEvent) emit(_repository.fetchNews(event));
    });
  }

但可以理解的是,它给出了一个错误,参数类型“Stream”不能分配给参数类型“NewsState”。

【问题讨论】:

  • 你能把_repository.fetchNews()的代码贴出来吗?

标签: flutter dart flutter-bloc


【解决方案1】:

我目前使用喜欢

class NewsBloc extends Bloc<NewsEvent, NewsState> {
  NewsBloc() : super(NewsInitial()) {
    on<FetchTopAndOtherNewsEvent>(_fetchTopAndOtherNewsEvent);
    on<FetchNewsEvent>(_onFetchNewsEvent);
  }

  _fetchTopAndOtherNewsEvent(FetchTopAndOtherNewsEvent event, emit) { /// event job
}

  _onFetchNewsEvent(FetchNewsEvent event, emit) {/// event job
 }
}

更多关于flutterbloccoreconcepts

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 2019-01-31
    • 2022-06-28
    • 2021-06-17
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    相关资源
    最近更新 更多