Утром увидел в чате такой вопрос:
Доброе утро как получить значение state из bloc без BlocBuilder, просто функция которая фильтрует массив и выводит в консоль
далее ответили:
По контексту можно попробовать
Или через локатор, если используешь
🟢на что я ответил так:
Если контекст высоко, лучше локатор(плюс там без блокбилдера хотят)
Тк он будет искать по дереву контекст, что займет время. Особенно если провайдер глобально объявлен и проект большой
https://t.me/mobile_developing_chat/32833
➡️ Я заблуждался насчёт поиска по дереву с InheritedWidget. Этого поиска не происходит.
Когда создаётся элемент, он имеет это поле с мапой и все ссылки родительских InheritedWidget уже будут присутствовать там
Map<Type, InheritedElement> _inheritedWidgets;
пруф код: https://github.com/flutter/flutter/blob/13860a7d23c564ec9ff38a44661d21160c3f7b1e/packages/flutter/lib/src/widgets/framework.dart#L3899
В доке provider так же сказано
This operation is O(1). It doesn't involve walking in the widget tree.https://pub.dev/packages/provider
Так что, если вы думали так же насчет «поиска по дереву» - теперь знаете🧑🎓
➡️ Больше информации здесь:
Mad Teacher говорил об этом https://t.me/skills_by_mad/275
Таймкод доклада Яндекса https://www.youtube.com/watch?v=yIkT-5aX898&t=421s
https://pub.dev/packages/provider
Подробно https://medium.com/flutter-community/the-widget-inherited-178ff969c50a
Если нет доступа, прикрепляю pdf статьи