UNPKG

@aliretail/react-materials-components

Version:
73 lines (70 loc) 12.5 kB
--- title: Select-API order: 3 category: UI description: Select 组件描述 screenshot: https://gw.alicdn.com/imgextra/i2/O1CN01yW3hCD1M8CnqeKFlq_!!6000000001389-2-tps-90-90.png --- ## API ### Select | 参数 | 说明 | 类型 | 默认值 | 备注 | | | :--------------------- | :----------------------------------------------------------- | :---------------------------------- | :------------------ | ---- | ----------- | | searchHighlight | 搜索高亮 | Boolean | false | 零售云新增配置 | | | optionsName | options 分栏name | Array | ['label'] | 零售云新增配置 | | | optionsShowAll | options hover 展示更多 | Boolean | false | 零售云新增配置 | | | selectTextSwitch | select选中项切换 | Boolean | false | 零售云新增配置 | | | size | 选择器尺寸 **可选值**: 'small', 'medium', 'large' | Enum | 'medium' | | | | value | 当前值,用于受控模式 | any | - | | | | defaultValue | 初始的默认值 | any | - | | | | placeholder | 没有值的时候的占位符 | String | - | | | | autoWidth | 下拉菜单是否与选择器对齐 | Boolean | true | | | | label | 自定义内联 label | ReactNode | - | | | | hasClear | 是否有清除按钮(单选模式有效) | Boolean | - | | | | state | 校验状态 **可选值**: 'error', 'loading' | Enum | - | | | | readOnly | 是否只读,只读模式下可以展开弹层但不能选 | Boolean | - | | | | disabled | 是否禁用选择器 | Boolean | - | | | | visible | 当前弹层是否显示 | Boolean | - | | | | defaultVisible | 弹层初始化是否显示 | Boolean | - | | | | onVisibleChange | 弹层显示或隐藏时触发的回调 **签名**: Function(visible: Boolean, type: String) => void **参数**: *visible*: {Boolean} 弹层是否显示 *type*: {String} 触发弹层显示或隐藏的来源 fromContent 表示由Dropdown内容触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发 | Function | func.noop | | | | popupContainer | 弹层挂载的容器节点 | any | - | | | | popupClassName | 弹层的 className | any | - | | | | popupStyle | 弹层的内联样式 | Object | - | | | | popupProps | 添加到弹层上的属性 | Object | {} | | | | followTrigger | 是否跟随滚动 | Boolean | - | | | | popupContent | 自定义弹层的内容 | ReactNode | - | | | | menuProps | 添加到菜单上的属性 | Object | - | | | | filterLocal | 是否使用本地过滤,在数据源为远程的时候需要关闭此项 | Boolean | true | | | | filter | 本地过滤方法,返回一个 Boolean 值确定是否保留 **签名**: Function(key: String, item: Object) => Boolean **参数**: *key*: {String} 搜索关键字 *item*: {Object} 渲染节点的item **返回值**: {Boolean} 是否匹配 | Function | filter | | | | defaultHighlightKey | 默认高亮的 key,不要和 autoHighlightFirstItem 同时使用 | String | null | | | | highlightKey | 高亮 key,不要和 autoHighlightFirstItem 同时使用,用于受控模式 | String | - | | | | onToggleHighlightItem | 键盘上下键切换菜单高亮选项的回调 **签名**: Function() => void | Function | func.noop | | | | autoHighlightFirstItem | 自动高亮第一个元素 | Boolean | true | | | | useVirtual | 是否开启虚拟滚动模式 | Boolean | - | | | | dataSource | 传入的数据源,可以动态渲染子项,详见 [dataSource的使用](https://alifd.alicdn.com/demos-pages/@alifd/next/Select@1.21.10/@alife/theme-blue@1.2.3/index.zh-cn.html#dataSource的使用) | Array<Object/Boolean/Number/String> | - | | | | itemRender | 渲染 MenuItem 内容的方法 **签名**: Function(item: Object, searchValue: String) => ReactNode **参数**: *item*: {Object} 渲染节点的item *searchValue*: {String} 搜索关键字(如果开启搜索) **返回值**: {ReactNode} item node | Function | - | | | | mode | 选择器模式 **可选值**: 'single', 'multiple', 'tag' | Enum | 'single' | | | | notFoundContent | 弹层内容为空的文案 | ReactNode | - | | | | isPreview | 是否为预览态 | Boolean | - | | | | renderPreview | 预览态模式下渲染的内容 **签名**: Function(value: number) => void **参数**: *value*: {number} 评分值 | Function | - | | | | showDataSourceChildren | 是否展示 dataSource 中 children | Boolean | - | | | | onChange | Select发生改变时触发的回调 **签名**: Function(value: mixed, actionType: String, item: mixed) => void **参数**: *value*: {mixed} 选中的值 *actionType*: {String} 触发的方式, 'itemClick', 'enter', 'tag' *item*: {mixed} 选中的值的对象数据 (useDetailValue=false有效) | Function | - | | | | hasBorder | 是否有边框 | Boolean | - | | | | hasArrow | 是否有下拉箭头 | Boolean | true | | | | showSearch | 展开后是否能搜索(tag 模式下固定为true| Boolean | false | | | | onSearch | 当搜索框值变化时回调 **签名**: Function(value: String) => void **参数**: *value*: {String} 数据 | Function | func.noop | | | | onSearchClear | 当搜索框值被(选择、弹窗关闭)导致清空时候的回调 **签名**: Function(actionType: String) => void **参数**: *actionType*: {String} 触发的方式, 'select'(选择清空), 'popupClose'(弹窗关闭清空) | Function | func.noop | | | | hasSelectAll | 多选模式下是否有全选功能 | Boolean/String | - | | | | fillProps | 填充到选择框里的值的 key | String | - | | | | useDetailValue | value 使用对象类型 `{value, label}`, 同时 onChange 第一个参数返回也修改为 dataSource 中的对象 | Boolean | - | | | | cacheValue | dataSource 变化的时是否保留已选的内容 | Boolean | true | | | | valueRender | 渲染 Select 展现内容的方法 **签名**: Function(item: Object) => ReactNode **参数**: *item*: {Object} 渲染节点的item **返回值**: {ReactNode} 展现内容 | Function | item => `item.label | | item.value` ||| | searchValue | 受控搜索值,一般不需要设置 | String | - | | | | tagInline | 是否一行显示,仅在 mode 为 multiple 的时候生效 | Boolean | false | | | | tagClosable | tag 是否可关闭 | Boolean | true | | | | maxTagCount | 最多显示多少个 tag | Number | - | | | | maxTagPlaceholder | 隐藏多余 tag 时显示的内容,在 maxTagCount 生效时起作用 **签名**: Function(selectedValues: object, totalValues: object) => void **参数**: *selectedValues*: {object} 当前已选中的元素 *totalValues*: {object} 总待选元素 | Function | - | | | | hiddenSelected | 选择后是否立即隐藏菜单 (mode=multiple/tag 模式生效) | Boolean | - | | | | onRemove | tag 删除回调 **签名**: Function(item: object) => void **参数**: *item*: {object} 渲染节点的item | Function | func.noop | | | | onFocus | 焦点事件 **签名**: Function() => void | Function | func.noop | | | | onBlur | 失去焦点事件 **签名**: Function() => void | Function | func.noop | | | | popupAutoFocus | 展开下拉菜单时是否自动焦点到弹层 | Boolean | false | | |