Saltar al contenido principal

Selector

Selector desplegable; admite uso controlado / no controlado, navegación por teclado y borrado.

Uso básico​

Selección controlada

Valor actual: (no seleccionado)

import { useState } from 'react'
import { LhSelect } from '@lh-ui/react'
import type { LhSelectOption } from '@lh-ui/react'

const options: LhSelectOption[] = [
{ label: 'Tinta', value: 'ink' },
{ label: 'Danqing', value: 'danqing' },
{ label: 'Blanco', value: 'blank' },
{ label: 'Gongbi', value: 'gongbi' },
]

export default function Demo() {
const [value, setValue] = useState<string>('')

return (
<LhSelect
value={value}
options={options}
placeholder="Selecciona un estilo"
onChange={(val) => setValue(val as string)}
/>
)
}

Props de Select​

PropDescripciónTipoOpcionesPredeterminado
valueValor controladounknown——
defaultValueValor predeterminado no controladounknown——
optionsLista de opcionesLhSelectOption[]—[]
placeholderMarcador de posiciónstring—Respaldo del paquete de idioma
disabledDesactivadoboolean—false
clearableSe puede borrarboolean—false
sizeTamaño'large' | 'middle' | 'small'—Según ConfigProvider
nameAtributo nativo namestring——
ariaLabelEtiqueta de accesibilidadstring——
placementPosición del desplegableLhPlacement—'bottom-start'
themeVarsVariables de tema a nivel de componenteRecord<string, string>——
sxPropiedad abreviada de diseñoSxProps——

LhSelectOption​

PropDescripciónTipo
labelTexto mostrado de la opciónstring
valueValor de la opciónunknown
disabledDesactiva esa opciónboolean

Eventos de Select​

EventoDescripciónFirma del callbackEquivalente en Vue
onChangeSe dispara al seleccionar (dos parámetros: el valor y el objeto de la opción)(value: unknown, option: LhSelectOption | undefined) => void@change
onClearSe dispara al borrar() => void@clear

Interacción de teclado​

Con el panel desplegado: ArrowUp / ArrowDown resaltan opciones (saltan las desactivadas), Enter selecciona y Escape lo cierra. El activador es role="combobox", el panel es role="listbox", las opciones son role="option", y el resaltado se sincroniza con aria-activedescendant.

ref​

forwardRef<HTMLDivElement> — elemento raíz del activador. LhSelectInstance expone open() / close() / focus().

Estilos​

import '@lh-ui/react/style/select'