получить доступ к BlocProvider.of <Bloc>(контекст) в методе dispose - PullRequest
0 голосов
/ 19 октября 2019

Кто-нибудь знает, как я могу это сделать?

Мой код:

  @override
  void dispose() {
    final FiltersBloc filtersBloc = 
       BlocProvider.of<FiltersBloc>(context);
    super.dispose();
  }

ошибка:

flutter:         BlocProvider.of() called with a context that does not contain a Bloc of type FiltersBloc.
flutter:         No ancestor could be found starting from the context that was passed to
flutter: BlocProvider.of<FiltersBloc>().
flutter:
flutter:         This can happen if:
flutter:         1. The context you used comes from a widget above the BlocProvider.
flutter:         2. You used MultiBlocProvider and didn't explicity provide the BlocProvider types.
flutter:
flutter:         Good: BlocProvider<FiltersBloc>(builder: (context) => FiltersBloc())
flutter:         Bad: BlocProvider(builder: (context) => FiltersBloc()).
flutter:
flutter:         The context used was: FiltersDrawer(dirty, state: _FiltersDrawerState#86e8a)

Кроме того, если я следую коду ошибки и использую final filtersBloc = BlocProvider<FiltersBloc>(builder: (context) => FiltersBloc()) вместо этого, я не могу позвонить filtersBloc.dispatch() больше.

Я знаю, что для initState мы можем просто didChangeDependencies вместо этого. Но я не могу найти эквивалент для утилизации.

Любая помощь будет принята с благодарностью. Спасибо!

...