Aller au contenu principal

Sélecteur

Liste déroulante de sélection, avec support du mode contrôlé / non contrôlé, de la navigation clavier et de l'effacement.

Utilisation de base​

Sélection contrôlée

Valeur actuelle : (non sélectionné)

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

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

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

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

Select Props​

PropDescriptionTypeOptionsValeur par défaut
valueValeur contrôléeunknown——
defaultValueValeur par défaut (non contrôlée)unknown——
optionsListe des optionsLhSelectOption[]—[]
placeholderEspace réservéstring—Repli du pack de langue
disabledDésactivéboolean—false
clearableEffaçableboolean—false
sizeTaille'large' | 'middle' | 'small'—Selon ConfigProvider
nameAttribut natif namestring——
ariaLabelÉtiquette d'accessibilitéstring——
placementPosition de la liste déroulanteLhPlacement—'bottom-start'
themeVarsVariables de thème au niveau du composantRecord<string, string>——
sxRaccourci de mise en pageSxProps——

LhSelectOption​

PropDescriptionType
labelTexte affiché de l'optionstring
valueValeur de l'optionunknown
disabledDésactive cette optionboolean

Événements de Select​

ÉvénementDescriptionSignature du callbackÉquivalent Vue
onChangeDéclenché à la sélection (deux paramètres : la valeur et l'objet option)(value: unknown, option: LhSelectOption | undefined) => void@change
onClearDéclenché à l'effacement() => void@clear

Interaction clavier​

Panneau ouvert : ArrowUp / ArrowDown surligne les options (en sautant les options désactivées), Enter sélectionne, Échap referme. Le déclencheur est role="combobox", le panneau role="listbox", les options role="option", et le surlignage est synchronisé via aria-activedescendant.

ref​

forwardRef<HTMLDivElement> — l'élément racine du déclencheur. LhSelectInstance expose open() / close() / focus().

Styles​

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