Компонент Radio в библиотеке MUI используется для выбора
одного варианта из нескольких. Он является визуальным представлением
радиокнопки и тесно интегрируется с RadioGroup для
группового управления состоянием.
RadioRadioGroup.true,
радиокнопка становится недоступной для взаимодействия.primary, secondary,
default, error, info,
success, warning).Пример использования:
import Radio from '@mui/material/Radio';
import FormControlLabel from '@mui/material/FormControlLabel';
}
label="Вариант 1"
/>
}
label="Вариант 2"
/>
FormControlLabel используется для объединения
радиокнопки и её подписи. Это улучшает доступность и удобство работы с
формами.
RadioGroup управляет набором радиокнопок как единым
контролом. Он позволяет задать общее значение и обработчик изменений, а
также гарантирует, что только одна радиокнопка может быть выбрана в
группе.
RadioGrouptrue,
радиокнопки располагаются горизонтально; по умолчанию —
вертикально.Пример горизонтальной группы:
import RadioGroup from '@mui/material/RadioGroup';
setSelectedOption(e.target.value)}
name="options"
>
} label="Вариант 1" />
} label="Вариант 2" />
} label="Вариант 3" />
MUI позволяет управлять состоянием радиокнопок двумя способами:
value:const [selectedOption, setSelectedOption] = useState('option1');
setSelectedOption(e.target.value)}
>
...
defaultValue:
...
Стилизация радиокнопок и групп осуществляется через свойства
sx и тему MUI.
...
label) для корректной
работы скринридеров.FormControl и FormLabel
позволяет объединять радиокнопки в логически осмысленные группы:import FormControl from '@mui/material/FormControl';
import FormLabel from '@mui/material/FormLabel';
Выберите вариант
setSelectedOption(e.target.value)}>
} label="Вариант 1" />
} label="Вариант 2" />
Использование FormControl и FormLabel
улучшает доступность, управляемость и визуальную консистентность
формы.
Radio и RadioGroup можно комбинировать с
Grid, Stack и Paper для
построения сложных форм и интерфейсов. Например, Stack
помогает создавать аккуратные вертикальные или горизонтальные макеты с
контролем отступов:
import Stack from '@mui/material/Stack';
Выберите план
setSelectedPlan(e.target.value)}>
} label="Базовый" />
} label="Профессиональный" />
} label="Корпоративный" />
Такой подход позволяет создавать гибкие и удобные интерфейсы, которые легко поддерживать и расширять.