Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: checkbox, group

Как реализовать группу чекбоксов с единым состоянием?

Вопрос проверяет умение управлять связанными UI-элементами через общее состояние и корректно синхронизировать данные формы.

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

Группа чекбоксов с единым состоянием реализуется через общий state.
Каждый чекбокс отражает часть этого состояния.
При изменении одного чекбокса обновляется общее состояние.
UI всегда рендерится на основе актуальных данных.

Длинный ответ

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

Определение

Единое состояние группы чекбоксов — это общий объект или массив, который описывает, какие элементы выбраны.

Подход через массив значений

Часто используют массив выбранных значений:

const [selected, setSelected] = useState([]);

Обновление состояния:

  • при выборе — добавляем значение

  • при снятии — удаляем значение

const toggle = value => {
  setSelected(prev =>
    prev.includes(value)
      ? prev.filter(v => v !== value)
      : [...prev, value]
  );
};

Связь состояния и UI

Каждый чекбокс:

  • читает своё состояние из state

  • сообщает об изменениях через обработчик

<input
  type="checkbox"
  checked={selected.includes('a')}
  onChange={() => toggle('a')}
/>

Почему это корректно

Такой подход:

  • исключает рассинхронизацию UI и данных

  • упрощает валидацию

  • облегчает отправку формы

Краткий вывод

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • React

    React

Ключевые слова

#checkbox

#group

Подпишись на React Developer в телеграм