

<DemoTitle title="Select" desc="下拉选择器">
## antd API

通用属性参考：[通用属性](/docs/react/common-props)

### Select props

| 参数 | 说明 | 类型 | 默认值 | 版本 | 
|--------|--------|--------|--------|--------|
| allowClear | 自定义清除按钮 | boolean \| { clearIcon?: ReactNode } | false | 5.8.0: 支持对象类型 | 
| autoClearSearchValue | 是否在选中项后清空搜索框，只在  | boolean | true |  | 
| autoFocus | 默认获取焦点 | boolean | false |  | 
| classNames | 语义化结构 class |  | - | 5.25.0 | 
| defaultActiveFirstOption | 是否默认高亮第一个选项 | boolean | true |  | 
| defaultOpen | 是否默认展开下拉菜单 | boolean | - |  | 
| defaultValue | 指定默认选中的条目 | string \| string[] \| | - |  | 
| disabled | 是否禁用 | boolean | false |  | 
| popupMatchSelectWidth | 下拉菜单和选择器同宽。默认将设置  | boolean \| number | true | 5.5.0 | 
| popupRender | 自定义下拉框内容 | (originNode: ReactNode) => ReactNode | - |  | 
| fieldNames | 自定义节点 label、value、options、groupLabel 的字段 | object | { label:  | 4.17.0（ | 
| filterOption | 是否根据输入项进行筛选。当其为一个函数时，会接收  | boolean \| function(inputValue, option) | true |  | 
| filterSort | 搜索时对筛选结果项的排序函数, 类似 | (optionA: Option, optionB: Option, info: { searchValue: string }) => number | - | searchValue | 
| getPopupContainer | 菜单渲染父节点。默认渲染到 body 上，如果你遇到菜单滚动定位问题，试试修改为滚动的区域，并相对其定位。 | function(triggerNode) | () => document.body |  | 
| labelInValue | 是否把每个选项的 label 包装到 value 中，会把 Select 的 value 类型从  | boolean | false |  | 
| listHeight | 设置弹窗滚动高度 | number | 256 |  | 
| loading | 加载中状态 | boolean | false |  | 
| maxCount | 指定可选中的最多 items 数量，仅在  | number | - | 5.13.0 | 
| maxTagCount | 最多显示多少个 tag，响应式模式会对性能产生损耗 | number \|  | - | responsive: 4.10 | 
| maxTagPlaceholder | 隐藏 tag 时显示的内容 | ReactNode \| function(omittedValues) | - |  | 
| maxTagTextLength | 最大显示的 tag 文本长度 | number | - |  | 
| menuItemSelectedIcon | 自定义多选时当前选中的条目图标 | ReactNode | - |  | 
| mode | 设置 Select 的模式为多选或标签 | multiple | - |  | 
| notFoundContent | 当下拉列表为空时显示的内容 | ReactNode | Not Found |  | 
| open | 是否展开下拉菜单 | boolean | - |  | 
| optionFilterProp | 搜索时过滤对应的  | string | value |  | 
| optionLabelProp | 回填到选择框的 Option 的属性值，默认是 Option 的子元素。比如在子元素需要高亮效果时，此值可以设为  | string | children |  | 
| options | 数据化配置选项内容，相比 jsx 定义会获得更好的渲染性能 | { label, value }[] | - |  | 
| optionRender | 自定义渲染下拉选项 | (option: FlattenOptionData , info: { index: number }) => React.ReactNode | - | 5.11.0 | 
| placeholder | 选择框默认文本 | string | - |  | 
| placement | 选择框弹出的位置 | bottomLeft | bottomLeft |  | 
| prefix | 自定义前缀 | ReactNode | - | 5.22.0 | 
| removeIcon | 自定义的多选框清除图标 | ReactNode | - |  | 
| searchValue | 控制搜索文本 | string | - |  | 
| showSearch | 配置是否可搜索 | boolean | 单选为 false，多选为 true |  | 
| size | 选择框大小 | large | middle |  | 
| status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 | 
| suffixIcon | 自定义的选择框后缀图标。以防止图标被用于其他交互，替换的图标默认不会响应展开、收缩事件，可以通过添加  | ReactNode |  |  | 
| styles | 语义化结构 style |  | - | 5.25.0 | 
| tagRender | 自定义 tag 内容 render，仅在  | (props) => ReactNode | - |  | 
| labelRender | 自定义当前选中的 label 内容 render （LabelInValueType的定义见  | (props: LabelInValueType) => ReactNode | - | 5.15.0 | 
| tokenSeparators | 自动分词的分隔符，仅在  | string[] | - |  | 
| value | 指定当前选中的条目，多选时为一个数组。（value 数组引用未变化时，Select 不会更新） | string \| string[] \|  | - |  | 
| variant | 形态变体 | outlined | outlined | 5.13.0 \|  | 
| virtual | 设置 false 时关闭虚拟滚动 | boolean | true | 4.1.0 | 
| onBlur | 失去焦点时回调 | function | - |  | 
| onChange | 选中 option，或 input 的 value 变化时，调用此函数 | function(value, option:Option \| Array) | - |  | 
| onClear | 清除内容时回调 | function | - | 4.6.0 | 
| onDeselect | 取消选中时调用，参数为选中项的 value (或 key) 值，仅在  | function(value: string \| number \| LabeledValue) | - |  | 
| onOpenChange | 展开下拉菜单的回调 | (open: boolean) => void | - |  | 
| onFocus | 获得焦点时回调 | (event: FocusEvent) => void | - |  | 
| onInputKeyDown | 按键按下时回调 | (event: KeyboardEvent) => void | - |  | 
| onPopupScroll | 下拉列表滚动时的回调 | (event: UIEvent) => void | - |  | 
| onSearch | 文本框值变化时回调 | function(value: string) | - |  | 
| onSelect | 被选中时调用，参数为选中项的 value (或 key) 值 | function(value: string \| number \| LabeledValue, option: Option) | - |  | 


注意，如果发现下拉菜单跟随页面滚动，或者需要在其他弹层中触发 Select，请尝试使用 `getPopupContainer={triggerNode => triggerNode.parentElement}` 将下拉弹层渲染节点固定在触发器的父元素中。

### Select Methods

| 名称 | 说明 | 版本 | 
|--------|--------|--------|
| blur() | 取消焦点 |  | 
| focus() | 获取焦点 |  | 


### Option props

| 参数 | 说明 | 类型 | 默认值 | 版本 | 
|--------|--------|--------|--------|--------|
| className | Option 器类名 | string | - |  | 
| disabled | 是否禁用 | boolean | false |  | 
| title | 选项上的原生 title 提示 | string | - |  | 
| value | 默认根据此属性值进行筛选 | string \| number | - |  | 


### OptGroup props

| 参数 | 说明 | 类型 | 默认值 | 版本 | 
|--------|--------|--------|--------|--------|
| key | Key | string | - |  | 
| label | 组名 | React.ReactNode | - |  | 
| className | Option 器类名 | string | - |  | 
| title | 选项上的原生 title 提示 | string | - |  | 
