下拉弹出菜单,代替原生的选择器。当然Select扩展了其他功能:多选,级联,搜索过滤单选和搜索过滤多选与自动填充选择。
API
| 参数 | 
说明 | 
类型 | 
默认值 | 
| open | 
控制下拉框展开收起 | 
bool | 
false | 
| value | 
指定当前选中的条目 | 
string/array/react node | 
- | 
| defaultValue | 
指定默认选中的条目 | 
string/array/react node | 
- | 
| multiple | 
支持多选 | 
bool | 
false | 
| allowClear | 
支持清除, 单选模式有效 | 
bool | 
false | 
| filterOption | 
是否根据输入项进行筛选。当其为一个函数时,会接收 inputValue option 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 false | 
bool/func | 
true | 
| tags | 
可以把随意输入的条目作为 tag,输入项不需要与下拉选项匹配 | 
bool | 
false | 
| onSelect | 
被选中时调用,参数为选中项的 value 值 | 
func | 
- | 
| onDeselect | 
取消选中时调用,参数为选中项的 option value 值,仅在 multiple 或 tags 模式下生效 | 
func | 
- | 
| onChange | 
选中 option,或 input 的 value 变化(combobox 模式下)时,调用此函数 | 
bool | 
- | 
| onSearch | 
文本框值变化时回调 | 
func | 
- | 
| onBlur | 
失去焦点的时回调 | 
bool | 
- | 
| onFocus | 
获得焦点时回调 | 
func | 
- | 
| placeholder | 
选择框默认文字 | 
string | 
- | 
| notFoundContent | 
当下拉列表为空时显示的内容 | 
string | 
'Not Found' | 
| dropdownMatchSelectWidth | 
下拉菜单和选择器同宽 | 
true | 
- | 
| optionLabelProp | 
回填到选择框的 Option 的属性值,默认是 Option 的子元素。比如在子元素需要高亮效果时,此值可以设为 value | 
string/number | 
children (combobox 模式下)为 value | 
| combobox | 
输入框自动提示模式 | 
bool | 
false | 
| size | 
选择框大小,可选 lg sm | 
string | 
default | 
| showSearch | 
是否可以输入搜索 | 
bool | 
false | 
| disabled | 
是否禁用 | 
bool | 
false | 
| defaultActiveFirstOption | 
是否默认高亮第一个选项 | 
bool | 
true | 
| dropdownStyle | 
下拉菜单的 style 属性 | 
object | 
- | 
| dropdownClassName | 
下拉菜单的 className 属性 | 
string | 
- | 
| getPopupContainer | 
菜单渲染父节点。默认渲染到 body 上,如果你遇到菜单滚动定位问题,试试修改为滚动的区域,并相对其定位 | 
func | 
() => document.body | 
| labelInValue | 
是否把每个选项的 label 包装到 value 中,决定 Select 的 value 类型。 | 
bool | 
false | 
| data | 
可以设置data属性来自动生成option,可以参见demo中的示例。也可以设置是否禁用disabled | 
Array | 
- | 
| autofocus | 
设置是否默认打开,从属性需配合onFocus、onBlur 。 | 
bool | 
false | 
| onKeyDown | 
按下键盘的回调 | 
bool | 
- | 
| Children | 
必填,Option组件/OptGroup组件 | 
node | 
- | 
 
Option
| 参数 | 
说明 | 
类型 | 
默认值 | 
| key | 
如果 react 需要你设置此项,此项值与 value 的值相同,然后可以省略 value 设置 | 
string | 
- | 
| value | 
默认根据此属性值进行筛选 | 
string | 
- | 
| disabled | 
是否禁用 | 
bool | 
false | 
 
OptGroup
| 参数 | 
说明 | 
类型 | 
默认值 | 
| label | 
组名 | 
string/react element | 
- | 
| mode | 
 | 
string | 
- | 
| Children | 
Option组件 | 
node | 
- | 
 
已支持的键盘操作
| 按键 | 
功能 | 
| ↑(上箭) | 
切换选项 | 
| ↓(下箭) | 
切换选项 | 
| esc | 
关闭下拉项 | 
| enter | 
选中下拉框 | 
 
注意
在Modal组件中,使用Select组件时,需要使用getPopupContainer,来让下拉显示在modal上。
return (
    <Select
        getPopupContainer={() => document.getElementById('modalId')}>
    </Select>
)