Seleccionar múltiples opciones de una lista desplegable
Seleccionar tecnologia
⚠️ Importante: Cuando trabajas con opciones de objeto, SIEMPRE debes proporcionar la prop getOptionLabel. Esta función le indica al componente qué propiedad del objeto mostrar como texto en los badges cuando se selecciona una opción.
Seleccionar usuario
¿Por qué es necesario getOptionLabel?
¿Qué hace getOptionLabel?
name)Las opciones de string son la forma más simple de usar el componente. No requieren configuración adicional:
const stringOptions = [
"React",
"Vue.js",
"Angular",
"Svelte",
"Next.js",
"Nuxt",
"Astro",
"SolidJS",
"Qwik",
"Tailwind CSS",
];⚠️ Requiere getOptionLabel: Cuando usas objetos, debes especificar qué propiedad contiene el texto a mostrar en los badges.
interface User {
name: string;
email: string;
avatar?: string;
role?: string;
}
const objectOptions: User[] = [
{ name: "Alex Torres", email: "alex.torres@example.com", role: "Developer" },
{ name: "María García", email: "maria.garcia@example.com", role: "Designer" },
{ name: "Luis Fernández", email: "luis.fernandez@example.com", role: "Manager" },
];
// Uso obligatorio con getOptionLabel
<MultiSelect
options={objectOptions}
getOptionLabel={(user) => user.name} // ← Especifica qué propiedad usar
// ... otras props
/>;💡 Consejo: renderOption te permite personalizar completamente cómo se ve cada opción en la lista desplegable. Puedes mostrar información adicional accediendo a cualquier propiedad del objeto, mientras que getOptionLabel se encarga del texto que aparece en los badges.
Seleccionar usuario
Tamaño pequeño
Tamaño mediano
Tamaño grande
Seleccionar tecnología
Ajusta la altura máxima del popover de opciones mandando el slot de clase areaViewport en la propiedad classNames
Seleccionar tecnologia
| Prop | Tipo | Requerido | Descripción |
|---|---|---|---|
placeholder | string | - | Texto que se muestra cuando no hay elementos seleccionados. |
options | string[] | Record<string, any>[] | - | Lista de opciones disponibles para seleccionar. |
size | 'small' | 'medium' | 'large' | - | Tamaño del multiselect. |
disabled | boolean | - | Indica si el multiselect debe deshabilitarse. |
error | boolean | - | Indica si el multiselect está en estado de error. |
selectedItems | string[] | Record<string, any>[] | - | Valor controlado de las opciones seleccionadas. |
defaultSelectedItems | string[] | Record<string, any>[] | - | Valor inicial de las opciones seleccionadas (no controlado). |
onChangeItems | (items: string[] | Record<string, any>[]) => void | - | Callback que es ejecutado cuando las opciones seleccionadas son modificadas. |
getOptionLabel | (option: Record<string, any>) => string | - | Una función que debe retornar una cadena para mostrarlo como texto en el badge cuando es seleccionada una opción. Usalo solo cuando mandes como opciones una lista de objetos. |
renderOption | (item: string | Record<string, any>, isSelected: boolean) => ReactNode | - | Función para personalizar el renderizado de cada opción en la lista desplegable. |
classNames | { root?: string; placeholder?: string; options?: string; option?: string; areaViewport?: string } | - | Clases CSS personalizadas para diferentes partes del componente. |