原生 <select> 封装。支持 size / status / 受控与非受控,读取 componentConfig.Select,placeholder 走 locale.Select.placeholder。
不是自定义浮层下拉 / Combobox;需要搜索或多选时另开组件,不要扩展本组件。
文档站 Demo 跟随 Rspress 明暗主题(亮色用 admin,暗色自动切 dark)。
覆盖尺寸、错误态、禁用、受控清空,以及与 Form.Item 的校验联用。
onChange 直接传出 string,可被 Form.Item 注入 value / status / aria-* / onBlur。
未传 placeholder 时使用 locale 默认文案(zh-CN:请选择;en-US:Please select)。可通过 ConfigProvider locale 覆盖 Select.placeholder。
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| options | SelectOption[] |
— | 选项列表(必填) |
| value | string |
— | 受控值;传 "" 回到 placeholder |
| defaultValue | string |
"" |
非受控初始值 |
| placeholder | string |
locale | 未选中时的占位文案 |
| disabled | boolean |
— | 禁用整个控件 |
| size | "sm" | "md" | "lg" |
"md" |
可读 componentConfig.Select.size |
| status | "default" | "error" |
"default" |
校验错误态(Form 会注入) |
| name / id | string |
— | 原生属性 |
| onChange | (value: string) => void |
— | 选中值变化 |
| onBlur | FocusEventHandler<select> |
— | 失焦(Form blur 校验) |
| aria-invalid / aria-describedby / aria-required | — | — | 无障碍,Form 可注入 |
| className | string |
— | 追加类名 |
| 属性 | 类型 | 说明 |
|---|---|---|
| label | string |
展示文案 |
| value | string |
选项值(勿用空字符串,与 placeholder 冲突) |
| disabled | boolean |
禁用该选项 |