我想在BloC中拥有BLoC。 使用Provider Plugin时,它是以下代码,并且可以正常工作。
something_widget.dart
home: MultiProvider(
providers: [
Provider(
builder: (_) => LoadingBloc(),
dispose: (_, bloc) => bloc.dispose(),
),
Provider(
builder: (context) {
var bloc = Provider.of<LoadingBloc>(context, listen: false);
return SomethingBloc(SomethingRepository(),bloc);
},
dispose: (_, bloc) => bloc.dispose(),
),
something_bloc.dart
class SomethingBloc {
final SomethingRepository repository;
final LoadingBloc loadingBloc;
SomethingBloc(this.repository, this.loadingBloc) {
fetch("flutter");
}
final _valueController = StreamController<SearchResultDto>();
Stream<SearchResultDto> get value => _valueController.stream;
void fetch(String freeWord) {
loadingBloc.loading(true);
var stream = repository.fetch(freeWord).whenComplete(() {
loadingBloc.loading(false);
}).asStream();
_valueController.sink.addStream(stream);
}
void dispose() {
_valueController.close();
}
}
问题是,如果BLoC类中包含BLoC,会出现什么问题。
答案 0 :(得分:0)
如果它已经按预期工作,则无法知道可能的问题。对我来说,这个问题似乎不是技术问题。
如果您有任何特定的疑问,请将其添加到问题中,否则仅是对问题的可能性进行大胆的猜测就不会对任何人有所帮助。