Компонент Select в библиотеке MUI используется для
создания выпадающих списков с возможностью выбора одного или нескольких
значений. Он построен поверх стандартного HTML-элемента
, но предоставляет богатый набор возможностей
для стилизации, кастомизации и интеграции с другими компонентами
MUI.
Импорт базового компонента:
import Sel ect from '@mui/material/Sel ect';
import MenuItem fr om '@mui/material/MenuItem';
import FormControl fr om '@mui/material/FormControl';
import InputLabel from '@mui/material/InputLabel';
Базовая структура включает три ключевых элемента:
FormControl, InputLabel и Select
с дочерними MenuItem.
Возраст
setAge(event.target.value)}
>
Ключевые моменты:
value — текущее значение
компонента.onChange — функция, вызываемая при
изменении выбора.MenuItem — отдельные элементы списка,
значение которых определяется атрибутом value.InputLabel и FormControl
обеспечивают правильное позиционирование и взаимодействие с
Select.Select поддерживает множественный выбор с помощью свойства
multiple.
Особенности множественного выбора:
multiple делает возможным выбор
нескольких элементов.renderValue позволяет кастомизировать
отображение выбранных значений.MUI предоставляет гибкую систему стилизации через sx,
styled и темы.
sx позволяет напрямую
применять стили к компоненту.С помощью свойств open, onOpen и
onClose можно управлять состоянием выпадающего списка:
const [open, setOpen] = useState(false);
open управляет видимостью списка.onOpen и
onClose — обратные вызовы для выполнения
действий при открытии/закрытии.Компонент Select может использоваться совместно с
TextField для упрощенной интеграции:
{options.map((option) => (
))}
select в TextField позволяет
объединить InputLabel, FormHelperText и
стилизацию в одном компоненте.Для больших списков используется виртуализация или
автокомплит. MUI предлагает компонент
Autocomplete, который расширяет возможности
Select:
import Autocomplete fr om '@mui/material/Autocomplete';
option.title}
renderInput={(params) => }
multiple
/>
displayEmpty — отображает placeholder
при отсутствии выбора.native — рендерит стандартный HTML
вместо кастомного компонента.MenuProps — позволяет настраивать
поведение выпадающего меню (например, максимальная высота,
позиционирование).
displayEmpty помогает показывать
текст-заглушку, даже если значение пустое.MenuProps позволяет детально
контролировать визуальные и функциональные свойства меню.Компонент Select автоматически поддерживает: