1

我在第 19 行遇到错误,我在 _item_fetcher 上应用了转换并将其通过管道传输到 _item_output:'PublishSubject' 不是'stream' 的'Stream' 类型的子类型。_repository.fetch_Items() 返回一个 Future,ItemModel 是定制类。_repository.fetch_Top_Ids() 返回列表。

import 'package:rxdart/rxdart.dart';
import 'package:flutter/material.dart';
import 'ItemModel.dart';
import 'Repository.dart';

class StoriesBloc{
  final _repository = Repository();
  final _top_ids = PublishSubject();
  final _item_output = BehaviorSubject();
  final _item_fetcher = PublishSubject();

  Stream get top_ids => _top_ids.stream;
  Stream get items => _item_output.stream;

  get fetch_Item => _item_fetcher.sink.add;
  

  StoriesBloc(){
    _item_fetcher.stream.transform(_item_outputTransformer()).pipe(_item_output);
  }

  fethTopIds() async{
    final ids = await _repository.fetch_Top_Ids();
    _top_ids.sink.add(ids);
  }

  _item_outputTransformer(){
    print('sdfgsfgsfhddvcsfc');
    return ScanStreamTransformer(
      (Map cache, int id, index){
        print("\n\n\n\n $index \n\n\n\n");
        cache[id] = _repository.fetch_Items(id);
        return cache;
      },

      {},  
    );
  }

  dispose(){
    _top_ids.close();
    _item_output.close();
    _item_fetcher.close();
  }
}
4

0 回答 0