我在第 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();
}
}