关于BLoC班级举行另一个BLoC班级

时间:2019-06-14 08:41:19

标签: flutter bloc

我想在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,会出现什么问题。

1 个答案:

答案 0 :(得分:0)

如果它已经按预期工作,则无法知道可能的问题。对我来说,这个问题似乎不是技术问题。

如果您有任何特定的疑问,请将其添加到问题中,否则仅是对问题的可能性进行大胆的猜测就不会对任何人有所帮助。