Я хотел бы иметь BLoC в BloC.При использовании Provider Plugin это следующий код, и он работает правильно.
Some_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(),
),
что-то_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.