Когда на самом деле закрывать блок вручную при использовании пакета flutter_bloc?

#flutter #flutter-bloc

#flutter #flutter-bloc

Вопрос:

Недавно я смотрел пакет flutter_bloc Феликса Ангелова (https://pub.dev/packages/flutter_bloc ) выступление в youtube (https://www.youtube.com/watch?v=knMvKPKBzGEamp;t=3s ) и это потрясающе!

У меня небольшая путаница в отношении закрытия блока вручную в методе dispose. Я слышал из выступления, что нам не нужно вызывать метод dispose для блоков, если мы используем пакет flutter_bloc, пожалуйста, поправьте меня, если это неправильно.

Заранее спасибо

Ответ №1:

Когда вы используете BlocProvider со сборщиком, BlocProvider он берет на себя ответственность за создание и закрытие блока. В тех случаях, когда вы хотите предоставить существующий блок новому маршруту, вам следует использовать BlocProvider.value вместо этого, поскольку он не закрывает блок автоматически.

Вы можете обратиться к документации

В большинстве случаев BlocProvider следует использовать для создания новых блоков, которые будут доступны для остальной части поддерева. В этом случае, поскольку BlocProvider отвечает за создание блока, он автоматически обработает закрытие блока.

В некоторых случаях BlocProvider можно использовать для добавления существующего блока в новую часть дерева виджетов. Это чаще всего используется, когда существующий блок необходимо сделать доступным для нового маршрута. В этом случае BlocProvider не будет автоматически закрывать блок, поскольку он его не создавал.