← Назад к вопросам

В какой момент можно подписаться на InheritedWidget?

3.0 Senior🔥 151 комментариев
#Flutter виджеты#State Management

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Когда можно подписаться на InheritedWidget

InheritedWidget — это одно из самых мощных средств управления состоянием в Flutter, но многие разработчики не понимают, когда именно возможна подписка.

Что такое InheritedWidget

InheritedWidget позволяет передавать данные вниз по дереву виджетов без необходимости явно передавать их через конструктор.

Когда ребёнок подписывается

Ключевой момент: подписка происходит только когда ребёнок вызывает метод доступа (обычно of(context)). Подписка НЕ автоматическая.

Внутри какого метода можно подписаться

  • В build() методе StatelessWidget
  • В build() методе State класса
  • В didChangeDependencies() методе State класса

Важный момент: didChangeDependencies()

Метод didChangeDependencies() вызывается после build() и всякий раз, когда зависимость изменяется.

Как работает подписка

Когда вызываешь dependOnInheritedWidgetOfExactType(), регистрируется зависимость и виджет пересчитается при изменении InheritedWidget.

Современный подход

В современных проектах вместо сырого InheritedWidget используют пакет Provider, который упрощает подписку.

В какой момент можно подписаться на InheritedWidget? | PrepBro