Вопрос проверяет умение управлять связанными UI-элементами через общее состояние и корректно синхронизировать данные формы.
Группа чекбоксов с единым состоянием реализуется через общий state.
Каждый чекбокс отражает часть этого состояния.
При изменении одного чекбокса обновляется общее состояние.
UI всегда рендерится на основе актуальных данных.
При работе с несколькими чекбоксами важно, чтобы их состояние было централизовано и предсказуемо.
Единое состояние группы чекбоксов — это общий объект или массив, который описывает, какие элементы выбраны.
Часто используют массив выбранных значений:
const [selected, setSelected] = useState([]);
Обновление состояния:
при выборе — добавляем значение
при снятии — удаляем значение
const toggle = value => {
setSelected(prev =>
prev.includes(value)
? prev.filter(v => v !== value)
: [...prev, value]
);
};
Каждый чекбокс:
читает своё состояние из state
сообщает об изменениях через обработчик
<input
type="checkbox"
checked={selected.includes('a')}
onChange={() => toggle('a')}
/>
Такой подход:
исключает рассинхронизацию UI и данных
упрощает валидацию
облегчает отправку формы
Группа чекбоксов должна управляться единым состоянием. Это делает поведение формы предсказуемым и управляемым.