我想在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,会出现什么问题。
发布于 2019-06-14 16:56:04
如果它已经按预期工作,就没有办法知道可能出现的问题。这个问题对我来说似乎不是一个技术问题。
如果你有任何具体的疑问,那么就把它们加到问题中,否则只是胡乱猜测问题的可能性对任何人都没有帮助。
https://stackoverflow.com/questions/56594514
复制相似问题