Прямая мутация state не уведомляет React о новом состоянии и нарушает модель снимков. Для обновления нужно вызвать setter или setState с новым значением.
Почему в React нельзя менять state напрямую? Например, state.count = 5.
Прямая мутация state не уведомляет React о новом состоянии и нарушает модель снимков. Для обновления нужно вызвать setter или setState с новым значением.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Прямая мутация state не уведомляет React о новом состоянии и нарушает модель снимков. Для обновления нужно вызвать setter или setState с новым значением.
Для объекта счётчика: setState(prev => ({ ...prev, count: 5 })). Копировать нужно и затронутые вложенные уровни, а не только верхний объект. Иначе старые ссылки могут измениться незаметно для мемоизации, а предыдущие рендеры и обработчики увидят неожиданно изменённые данные.