Select 选择器

从多个选项中选择一个或多个选项,并呈现选择结果的组件。

Select

Props

Prop NameTypeRequiredDefaultDescription
value
Key | Key[]
当前值,controlled
defaultValue
Key | Key[]
默认值,uncontrolled
placeholderReactNode
无选项时显示内容
onChange
(value: Key | Key[] | undefined) => void
修改、清空时的回调,清空时回调值单选为 undefined、du px aun
options
{
/** 选项展示 */
label?: ReactNode;
/** 选项 value,不可重复 */
value: Key;
}[]
快速设置选项,推荐使用以获得更好的性能
extra
{ content: ReactNode } | ReactNode | ((hidePopup: () => void) => ReactNode)
在尾部增加附加内容,会脱离选项流容器,超高度时不会一起滚动,如需在选项中嵌入附加内容,可使用 Select.Extra
multipleboolean
是否多选
showSelectAllboolean
是否显示全选
disabledboolean
是否禁用
styleType
'list'
样式风格
renderContent
(value?: Key | Key[], valueChild?: ReactNode[]) => ReactNode
如何渲染选中项的展示
@param
当前 select 的值
@param
当前值对应的展示内容(为性能考虑,只提供前 20 个选项,如果需要获取所有,请自行拿 value 获取)
renderSelector
(content: ReactNode, visible: boolean) => ReactNode
自定义渲染选择器
@param
渲染的内容
@param
当前的select下拉是否展示
renderPopup
(
options: {
handleVisible: (visible: boolean) => void;
onChange: (v: Key | Key[]) => void;
value?: Key | Key[];
/** @ignore */
children?: ReactNode;
} & Pick<SelectProps, 'multiple' | 'extra' | 'search' | 'options'>
) => ReactNode
自定义渲染弹出内容
@param
配置
@param
处理弹出层的显示隐藏
@param
value 变化回调
@param
select 的当前值
search
| true
| {
/**
* 自定义搜索
* @argument searchValue - 搜索的值
* @argument value - option的值
*/
handleSearch?: (searchValue: string, value: Key, s: any) => boolean;
/** 搜索值 受控 */
searchValue?: string;
/** 默认搜索值 非受控 */
defaultSearchValue?: string;
/** 搜索值变化回调 */
onSearchValueChange?: (searchValue: string) => void;
}
- 是否展示搜索框,可以为 true 或者 Object - 为 Object 时可传入 handleSearch 对搜索筛选进行自定义
sizeSize'md'
尺寸
blockboolean
展示变更为块占位
clearableboolean
是否可清空,仅单选可用
popoverany
弹出层的popover props
@deprecated
请使用popoverProps替换
popoverPropsany
弹出层的popover props
customStyle
{
/** 列表最大高度 */
optionListMaxHeight?: number | string;
/** 弹出菜单的最大宽度 */
popupMaxWidth?: string;
/** 弹出菜单的宽度 */
popupWidth?: string;
}
自定义样式
emptyContentReactNode
可选性为空时展示内容
virtualList
| boolean
| {
simple?: true;
height?: number;
}
启用虚拟列表,仅使用 options 时生效

说明

  • 这是 Select 组件
  • 默认的弹出层容器为 forwardPopupContainer={triggerNode => triggerNode.parentNode},默认会查找上层的建议容器

演示

演示

VIEW CODE ( LIVE )

defaultValue - 默认值 (非受控)

VIEW CODE ( LIVE )

multiple - 多选

VIEW CODE ( LIVE )

disabled - 禁用

VIEW CODE ( LIVE )

extra - 附加内容

VIEW CODE ( LIVE )

renderSelector - 自定义渲染选择器

VIEW CODE ( LIVE )

renderContent - 如何渲染选中项的展示

VIEW CODE ( LIVE )

renderPopup - 自定义渲染弹出内容

VIEW CODE ( LIVE )

search - 是否展示搜索框

VIEW CODE ( LIVE )

size - 尺寸

VIEW CODE ( LIVE )

block

VIEW CODE ( LIVE )

showSelectAll - 全选

VIEW CODE ( LIVE )

popoverProps - 弹出层的 popover props

VIEW CODE ( LIVE )

emptyContent - 空数据提示

VIEW CODE ( LIVE )

customStyle - 可自定义样式

VIEW CODE ( LIVE )

virtualList - 虚拟列表

VIEW CODE ( LIVE )

使用案例

VIEW CODE ( LIVE )

边界测试

VIEW CODE ( LIVE )
Copyright © 2021-2024 UCloud 优刻得科技股份有限公司