Есть дерево React-компонентов: как из дочернего компонента инициировать изменение состояния, которое находится в родительском компоненте?

Родитель передаёт callback через props, а ребёнок вызывает его с необходимыми данными; само состояние остаётся у владельца.

Короткий ответ

Что ответить на собеседовании

Родитель передаёт callback через props, а ребёнок вызывает его с необходимыми данными; само состояние остаётся у владельца.

Подробный разбор

Ответ с пояснениями

Родитель передаёт callback через props, а ребёнок вызывает его с необходимыми данными; само состояние остаётся у владельца.

Например, onSelect(id) в дочернем компоненте вызывает родительский setSelected(id). Для сложного дерева можно использовать context или согласованный store, но не стоит мутировать родительские props напрямую. Контракт события обычно лучше, чем передача всех внутренних деталей state.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее