logoAnt Design

⌘ K
  • 设计
  • 研发
  • 组件
  • 博客
  • 资源
  • 国内镜像
YouMindTRACTIANLobeHub
6.4.3
  • 组件总览
  • 更新日志
    v6.4.3
  • 通用
    • Button按钮
    • FloatButton悬浮按钮
    • Icon图标
    • Typography排版
  • 布局
    • Divider分割线
    • Flex弹性布局
    • Grid栅格
    • Layout布局
    • Masonry瀑布流
      6.0.0
    • Space间距
    • Splitter分隔面板
  • 导航
    • Anchor锚点
    • Breadcrumb面包屑
    • Dropdown下拉菜单
    • Menu导航菜单
    • Pagination分页
    • Steps步骤条
    • Tabs标签页
  • 数据录入
    • AutoComplete自动完成
    • Cascader级联选择
    • Checkbox多选框
    • ColorPicker颜色选择器
    • DatePicker日期选择框
    • Form表单
    • Input输入框
    • InputNumber数字输入框
    • Mentions提及
    • Radio单选框
    • Rate评分
    • Select选择器
    • Slider滑动输入条
    • Switch开关
    • TimePicker时间选择框
    • Transfer穿梭框
    • TreeSelect树选择
    • Upload上传
  • 数据展示
    • Avatar头像
    • Badge徽标数
    • Calendar日历
    • Card卡片
    • Carousel走马灯
    • Collapse折叠面板
    • Descriptions描述列表
    • Empty空状态
    • Image图片
    • List列表
      废弃
    • Popover气泡卡片
    • QRCode二维码
    • Segmented分段控制器
    • Statistic统计数值
    • Table表格
    • Tag标签
    • Timeline时间轴
    • Tooltip文字提示
    • Tour漫游式引导
    • Tree树形控件
  • 反馈
    • Alert警告提示
    • Drawer抽屉
    • Message全局提示
    • Modal对话框
    • Notification通知提醒框
    • Popconfirm气泡确认框
    • Progress进度条
    • Result结果
    • Skeleton骨架屏
    • Spin加载中
    • Watermark水印
  • 其他
    • Affix固钉
    • App包裹组件
    • BorderBeam边框流光
      6.4.0
    • ConfigProvider全局化配置
    • Util工具类
何时使用
代码演示
基本使用
带搜索框
自定义搜索
多字段搜索
多选
三种大小
自定义下拉选项
带排序的搜索
标签
分组
联动
搜索框
获得选项的文本
自动分词
搜索用户
前后缀
扩展菜单
隐藏已选择选项
形态变体
自定义选择标签
自定义选中 label
响应式 maxTagCount
大数据
自定义状态
弹出位置
最大选中数量
自定义语义结构的样式和类
API
Select props
showSearch
Select Methods
Option props
OptGroup props
Semantic DOM
主题变量(Design Token)
FAQ
mode="tags" 模式下为何搜索有时会出现两个相同选项?
点击 popupRender 里的元素,下拉菜单不会自动消失?
反过来希望点击 popupRender 里元素不消失该怎么办?
自定义 Option 样式导致滚动异常怎么办?
为何无障碍测试会报缺失 aria- 属性?
使用 tagRender 生成的自定义标签,点击关闭时会呼出下拉框

Select
选择器

下拉选择器。
使用import { Select } from 'antd';
反馈
components/select提交问题待解决
文档
编辑此页LLMs.md
文档贡献者
    Rate评分Slider滑动输入条

    相关资源

    Ant Design X
    Ant Design Charts
    Ant Design Pro
    Pro Components
    Ant Design Mobile
    Ant Design Mini
    Ant Design Web3
    Ant Design Landing-首页模板集
    Scaffolds-脚手架市场
    Umi-React 应用开发框架
    dumi-组件/文档研发工具
    qiankun-微前端框架
    Ant Motion-设计动效
    国内镜像站点 🇨🇳

    社区

    Awesome Ant Design
    Medium
    X
    yuque logoAnt Design 语雀专栏
    Ant Design 知乎专栏
    体验科技专栏
    seeconf logoSEE Conf-蚂蚁体验科技大会
    加入我们

    帮助

    GitHub
    更新日志
    常见问题
    报告 Bug
    议题
    讨论区
    StackOverflow
    SegmentFault

    Ant XTech logo更多产品

    yuque logo语雀-构建你的数字花园
    AntV logoAntV-数据可视化解决方案
    Egg logoEgg-企业级 Node.js 框架
    Kitchen logoKitchen-Sketch 工具集
    Galacean logoGalacean-互动图形解决方案
    WeaveFox logoWeaveFox-前端智能研发
    xtech logo蚂蚁体验科技
    主题编辑器
    Made with ❤ by
    蚂蚁集团和 Ant Design 开源社区
    loading

    何时使用

    • 弹出一个下拉菜单给用户选择操作,用于代替原生的选择器,或者需要一个更优雅的多选器时。
    • 当选项少时(少于 5 项),建议直接将选项平铺,使用 Radio 是更好的选择。
    • 如果你在寻找一个可输可选的输入框,那你可能需要 AutoComplete。

    代码演示

    API

    通用属性参考:通用属性

    Select props

    参数说明类型默认值版本
    allowClear自定义清除按钮boolean | { clearIcon?: ReactNode }false5.8.0: 支持对象类型
    autoClearSearchValue是否在选中项后清空搜索框,只在 mode 为 multiple 或 tags 时有效booleantrue
    bordered是否带边框,请使用 variant 替代booleantrue-
    classNames用于自定义 Select 组件内部各语义化结构的 class,支持对象或函数Record<SemanticDOM, string> | (info: { props }) => Record<SemanticDOM, string>-
    defaultActiveFirstOption是否默认高亮第一个选项booleantrue
    defaultOpen是否默认展开下拉菜单boolean-
    defaultValue指定默认选中的条目string | string[] |
    number | number[] |
    LabeledValue | LabeledValue[]
    -
    disabled是否禁用booleanfalse
    dropdownClassName下拉菜单的 className 属性,请使用 classNames.popup.root 替代string--
    dropdownMatchSelectWidth下拉菜单和选择器是否同宽,请使用 popupMatchSelectWidth 替代boolean | numbertrue-
    popupClassName下拉菜单的 className 属性,使用 classNames.popup.root 替换string-4.23.0
    popupMatchSelectWidth下拉菜单和选择器同宽。默认将设置 min-width,当值小于选择框宽度时会被忽略。false 时会关闭虚拟滚动boolean | numbertrue5.5.0
    dropdownRender自定义下拉框内容,使用 popupRender 替换(originNode: ReactNode) => ReactNode-
    popupRender自定义下拉框内容(originNode: ReactNode) => ReactNode-5.25.0
    dropdownStyle下拉菜单的 style 属性,使用 styles.popup.root 替换CSSProperties-
    fieldNames自定义节点 label、value、options、groupLabel 的字段object{ label: label, value: value, options: options, groupLabel: label }4.17.0(groupLabel 在 5.6.0 新增)
    filterOption是否根据输入项进行筛选。当其为一个函数时,会接收 inputValue option 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 false。示例boolean | function(inputValue, option)true
    filterSort搜索时对筛选结果项的排序函数, 类似Array.sort里的 compareFunction(optionA: Option, optionB: Option, info: { searchValue: string }) => number-searchValue: 5.19.0
    getPopupContainer菜单渲染父节点。默认渲染到 body 上,如果你遇到菜单滚动定位问题,试试修改为滚动的区域,并相对其定位。示例function(triggerNode)() => document.body
    labelInValue是否把每个选项的 label 包装到 value 中,会把 Select 的 value 类型从 string 变为 { value: string, label: ReactNode } 的格式booleanfalse
    listHeight设置弹窗滚动高度number256
    loading加载中状态booleanfalse
    loadingIcon自定义的加载图标ReactNode<LoadingOutlined spin />6.4.0
    maxCount指定可选中的最多 items 数量,仅在 mode 为 multiple 或 tags 时生效number-5.13.0
    maxTagCount最多显示多少个 tag,响应式模式会对性能产生损耗number | responsive-responsive: 4.10
    maxTagPlaceholder隐藏 tag 时显示的内容ReactNode | function(omittedValues)-
    maxTagTextLength最大显示的 tag 文本长度number-
    menuItemSelectedIcon自定义多选时当前选中的条目图标ReactNode<CheckOutlined />
    mode设置 Select 的模式为多选或标签multiple | tags-
    notFoundContent当下拉列表为空时显示的内容ReactNodeNot Found
    open是否展开下拉菜单boolean-
    optionFilterProp已废弃,见 showSearch.optionFilterProp
    optionLabelProp回填到选择框的 Option 的属性值,默认是 Option 的子元素。比如在子元素需要高亮效果时,此值可以设为 value。示例stringchildren
    options数据化配置选项内容,相比 jsx 定义会获得更好的渲染性能{ label, value }[]-
    optionRender自定义渲染下拉选项(option: FlattenOptionData<BaseOptionType> , info: { index: number }) => React.ReactNode-5.11.0
    placeholder选择框默认文本string-
    placement选择框弹出的位置bottomLeft bottomRight topLeft topRightbottomLeft
    prefix自定义前缀ReactNode-5.22.0
    removeIcon自定义的多选框清除图标ReactNode<CloseOutlined />
    searchValue控制搜索文本string-
    showArrow是否显示箭头图标,请使用 suffixIcon={null} 替代booleantrue-
    showSearch配置是否可搜索boolean | Object单选为 false,多选为 true
    size选择框大小large | medium | smallmedium
    status设置校验状态'error' | 'warning'-4.19.0
    styles用于自定义 Select 组件内部各语义化结构的行内 style,支持对象或函数Record<SemanticDOM, CSSProperties> | (info: { props }) => Record<SemanticDOM, CSSProperties>-
    suffixIcon自定义的选择框后缀图标。以防止图标被用于其他交互,替换的图标默认不会响应展开、收缩事件,可以通过添加 pointer-events: none 样式透传。ReactNode<DownOutlined />
    tagRender自定义 tag 内容 render,仅在 mode 为 multiple 或 tags 时生效(props) => ReactNode-
    labelRender自定义当前选中的 label 内容 render (LabelInValueType的定义见 LabelInValueType)(props: LabelInValueType) => ReactNode-5.15.0
    tokenSeparators自动分词的分隔符,仅在 mode="tags" 时生效string[]-
    value指定当前选中的条目,多选时为一个数组。(value 数组引用未变化时,Select 不会更新)string | string[] |
    number | number[] |
    LabeledValue | LabeledValue[]
    -
    variant形态变体outlined | borderless | filled | underlinedoutlined5.13.0 | underlined: 5.24.0
    virtual设置 false 时关闭虚拟滚动booleantrue4.1.0
    onActive键盘和鼠标交互时触发function(value: string | number | LabeledValue)-
    onBlur失去焦点时回调function-
    onChange选中 option,或 input 的 value 变化时,调用此函数function(value, option:Option | Array<Option>)-
    onClear清除内容时回调function-4.6.0
    onDeselect取消选中时调用,参数为选中项的 value (或 key) 值,仅在 multiple 或 tags 模式下生效function(value: string | number | LabeledValue)-
    onDropdownVisibleChange展开下拉菜单的回调,使用 onOpenChange 替换(open: boolean) => void-
    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} 将下拉弹层渲染节点固定在触发器的父元素中。

    showSearch

    参数说明类型默认值版本
    autoClearSearchValue是否在选中项后清空搜索框,只在 mode 为 multiple 或 tags 时有效booleantrue
    filterOption是否根据输入项进行筛选。当其为一个函数时,会接收 inputValue option 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 false。示例boolean | function(inputValue, option)true
    filterSort搜索时对筛选结果项的排序函数, 类似Array.sort里的 compareFunction(optionA: Option, optionB: Option, info: { searchValue: string }) => number-searchValue: 5.19.0
    optionFilterProp搜索时过滤对应的 option 属性,如设置为 children 表示对内嵌内容进行搜索。
    若通过 options 属性配置选项内容,建议设置 optionFilterProp="label" 来对内容进行搜索。
    当传入 string[] 时多个字段进行 OR 匹配搜索
    string | string[]valuestring[]: 6.1.0
    searchValue控制搜索文本string-
    onSearch文本框值变化时回调function(value: string)-
    searchIcon自定义的搜索图标ReactNode<SearchOutlined />6.4.0

    Select Methods

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

    Option props

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

    OptGroup props

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

    Semantic DOM

    prefix
    Please select
    • root
      根元素,包含相对定位、行内 flex 布局、光标样式、过渡动画、边框等选择器容器的基础样式
    • prefix
      前缀元素,包含前缀内容的布局和样式
    • content
      多选容器,包含已选项的布局、间距、换行相关样式
    • placeholder
      占位符元素,包含占位符文本的字体样式和颜色
    • clear
      清除按钮元素,包含清除按钮的布局、样式和交互效果
    • input
      输入框元素,包含搜索输入框的样式、光标控制、字体继承等搜索相关样式,去除了边框样式
    • suffix
      后缀元素,包含后缀内容的布局和样式,如清除按钮、箭头图标等
    • popup.root
      弹出菜单元素,包含弹出层的定位、层级、背景、边框、阴影等弹出容器样式
    • popup.list
      弹出菜单列表元素,包含选项列表的布局、滚动、最大高度等列表容器样式
    • popup.listItem
      弹出菜单条目元素,包含选项项的内边距、悬浮效果、选中状态、禁用状态等选项交互样式

    主题变量(Design Token)

    组件 Token如何定制?
    Token 名称描述类型默认值
    activeBorderColor激活态边框色string#1677ff
    activeOutlineColor激活态 outline 颜色stringrgba(5,145,255,0.1)
    clearBg清空按钮背景色string#ffffff
    hoverBorderColor悬浮态边框色string#4096ff
    multipleItemBg多选标签背景色stringrgba(0,0,0,0.06)
    multipleItemBorderColor多选标签边框色stringtransparent
    multipleItemBorderColorDisabled多选标签禁用边框色stringtransparent
    multipleItemColorDisabled多选标签禁用文本颜色stringrgba(0,0,0,0.25)
    multipleItemHeight多选标签高度number24
    multipleItemHeightLG大号多选标签高度number32
    multipleItemHeightSM小号多选标签高度number16
    multipleSelectorBgDisabled多选框禁用背景stringrgba(0,0,0,0.04)
    optionActiveBg选项激活态时背景色stringrgba(0,0,0,0.04)
    optionFontSize选项字体大小number14
    optionHeight选项高度number32
    optionLineHeight选项行高LineHeight<string | number> | undefined1.5714285714285714
    optionPadding选项内间距Padding<string | number> | undefined5px 12px
    optionSelectedBg选项选中时背景色string#e6f4ff
    optionSelectedColor选项选中时文本颜色stringrgba(0,0,0,0.88)
    optionSelectedFontWeight选项选中时文本字重FontWeight | undefined600
    selectorBg选框背景色string#ffffff
    showArrowPaddingInlineEnd箭头的行末内边距number18
    singleItemHeightLG单选大号回填项高度number40
    zIndexPopup下拉菜单 z-indexnumber1050
    全局 Token如何定制?
    Token 名称描述类型默认值
    colorBgBase用于派生背景色梯度的基础变量,v5 中我们添加了一层背景色的派生算法可以产出梯度明确的背景色的梯度变量。但请不要在代码中直接使用该 Seed Token !string#fff
    colorBgContainer组件的容器背景色,例如:默认按钮、输入框等。务必不要将其与 `colorBgElevated` 混淆。string#ffffff
    colorBgContainerDisabled控制容器在禁用状态下的背景色。stringrgba(0,0,0,0.04)
    colorBgElevated浮层容器背景色,在暗色模式下该 token 的色值会比 `colorBgContainer` 要亮一些。例如:模态框、弹出框、菜单等。string#ffffff
    colorBorder默认使用的边框颜色, 用于分割不同的元素,例如:表单的分割线、卡片的分割线等。string#d9d9d9
    colorBorderDisabled控制元素在禁用状态下的边框颜色。string#d9d9d9
    colorError用于表示操作失败的 Token 序列,如失败按钮、错误状态提示(Result)组件等。string#ff4d4f
    colorErrorAffix控制表单控件前后缀在错误状态下的颜色。string#ff4d4f
    colorErrorBg错误色的浅色背景颜色string#fff2f0
    colorErrorBgHover错误色的浅色背景色悬浮态string#fff1f0
    colorErrorBorderHover错误色的描边色悬浮态string#ffa39e
    colorErrorOutline控制输入组件错误状态下的外轮廓线颜色。stringrgba(255,38,5,0.06)
    colorErrorText错误色的文本默认态string#ff4d4f
    colorFillSecondary二级填充色可以较为明显地勾勒出元素形体,如 Rate、Skeleton 等。也可以作为三级填充色的 Hover 状态,如 Table 等。stringrgba(0,0,0,0.06)
    colorFillTertiary三级填充色用于勾勒出元素形体的场景,如 Slider、Segmented 等。如无强调需求的情况下,建议使用三级填色作为默认填色。stringrgba(0,0,0,0.04)
    colorIcon控制弱操作图标的颜色,例如 allowClear 或 Alert 关闭按钮。 *stringrgba(0,0,0,0.45)
    colorIconHover控制弱操作图标在悬浮状态下的颜色,例如 allowClear 或 Alert 关闭按钮。stringrgba(0,0,0,0.88)
    colorPrimary品牌色是体现产品特性和传播理念最直观的视觉元素之一。在你完成品牌主色的选取之后,我们会自动帮你生成一套完整的色板,并赋予它们有效的设计语义string#1677ff
    colorSplit用于作为分割线的颜色,此颜色和 colorBorderSecondary 的颜色一致,但是用的是透明色。stringrgba(5,5,5,0.06)
    colorText最深的文本色。为了符合W3C标准,默认的文本颜色使用了该色,同时这个颜色也是最深的中性色。stringrgba(0,0,0,0.88)
    colorTextDescription控制文本描述字体颜色。stringrgba(0,0,0,0.45)
    colorTextDisabled控制禁用状态下的字体颜色。stringrgba(0,0,0,0.25)
    colorTextPlaceholder控制占位文本的颜色。stringrgba(0,0,0,0.25)
    colorTextQuaternary第四级文本色是最浅的文本色,例如表单的输入提示文本、禁用色文本等。stringrgba(0,0,0,0.25)
    colorWarning用于表示操作警告的 Token 序列,如 Notification、 Alert等警告类组件或 Input 输入类等组件会使用该组梯度变量。string#faad14
    colorWarningAffix控制表单控件前后缀在警告状态下的颜色。string#faad14
    colorWarningBg警戒色的浅色背景颜色string#fffbe6
    colorWarningBgHover警戒色的浅色背景色悬浮态string#fff1b8
    colorWarningHover警戒色的深色悬浮态string#ffd666
    colorWarningOutline控制输入组件警告状态下的外轮廓线颜色。stringrgba(255,215,5,0.1)
    borderRadius基础组件的圆角大小,例如按钮、输入框、卡片等number6
    borderRadiusLGLG号圆角,用于组件中的一些大圆角,如 Card、Modal 等一些组件样式。number8
    borderRadiusSMSM号圆角,用于组件小尺寸下的圆角,如 Button、Input、Select 等输入类控件在 small size 下的圆角number4
    borderRadiusXSXS号圆角,用于组件中的一些小圆角,如 Segmented 、Arrow 等一些内部圆角的组件样式中。number2
    boxShadowSecondary控制元素二级阴影样式。string 0 6px 16px 0 rgba(0,0,0,0.08), 0 3px 6px -4px rgba(0,0,0,0.12), 0 9px 28px 8px rgba(0,0,0,0.05)
    controlHeightAnt Design 中按钮和输入框等基础控件的高度number32
    controlHeightLG较高的组件高度number40
    controlHeightSM较小的组件高度number24
    controlOutlineWidth控制输入组件的外轮廓线宽度。number2
    controlPaddingHorizontal控制元素水平内间距。number12
    fontFamilyAnt Design 的字体家族中优先使用系统默认的界面字体,同时提供了一套利于屏显的备用字体库,来维护在不同平台以及浏览器的显示下,字体始终保持良好的易读性和可读性,体现了友好、稳定和专业的特性。string-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'
    fontSize设计系统中使用最广泛的字体大小,文本梯度也将基于该字号进行派生。number14
    fontSizeIcon控制选择器、级联选择器等中的操作图标字体大小。正常情况下与 fontSizeSM 相同。number12
    fontSizeLG大号字体大小number16
    fontSizeSM小号字体大小number12
    lineHeight文本行高number1.5714285714285714
    lineHeightLG大型文本行高number1.5
    lineType用于控制组件边框、分割线等的样式,默认是实线stringsolid
    lineWidth用于控制组件边框、分割线等的宽度number1
    marginXS控制元素外边距,小尺寸。number8
    motionDurationMid动效播放速度,中速。用于中型元素动画交互string0.2s
    motionDurationSlow动效播放速度,慢速。用于大型元素如面板动画交互string0.3s
    motionEaseInOut预设动效曲率string
    Cubic Bezier Visualizer
    cubic-bezier(0.645, 0.045, 0.355, 1)External Link Icon
    motionEaseInOutCirc预设动效曲率string
    Cubic Bezier Visualizer
    cubic-bezier(0.78, 0.14, 0.15, 0.86)External Link Icon
    motionEaseInQuint预设动效曲率string
    Cubic Bezier Visualizer
    cubic-bezier(0.755, 0.05, 0.855, 0.06)External Link Icon
    motionEaseOutCirc预设动效曲率string
    Cubic Bezier Visualizer
    cubic-bezier(0.08, 0.82, 0.17, 1)External Link Icon
    motionEaseOutQuint预设动效曲率string
    Cubic Bezier Visualizer
    cubic-bezier(0.23, 1, 0.32, 1)External Link Icon
    paddingSM控制元素的小内间距。number12
    paddingXS控制元素的特小内间距。number8
    paddingXXS控制元素的极小内间距。number4

    FAQ

    mode="tags" 模式下为何搜索有时会出现两个相同选项?

    这一般是 options 中的 label 和 value 不同导致的,你可以通过 optionFilterProp="label" 将过滤设置为展示值以避免这种情况。

    点击 popupRender 里的元素,下拉菜单不会自动消失?

    你可以使用受控模式,手动设置 open 属性:codesandbox。

    反过来希望点击 popupRender 里元素不消失该怎么办?

    Select 当失去焦点时会关闭下拉框,你可以通过阻止默认行为来避免丢失焦点导致的关闭:

    tsx
    <Select
    popupRender={() => (
    <div
    onMouseDown={(e) => {
    e.preventDefault();
    e.stopPropagation();
    }}
    >
    Some Content
    </div>
    )}
    />

    自定义 Option 样式导致滚动异常怎么办?

    这是由于虚拟滚动默认选项高度为 24px,如果你的选项高度小于该值则需要通过 listItemHeight 属性调整,而 listHeight 用于设置滚动容器高度:

    tsx
    <Select listItemHeight={10} listHeight={250} />

    注意:listItemHeight 和 listHeight 为内部属性,如无必要,请勿修改该值。

    为何无障碍测试会报缺失 aria- 属性?

    Select 无障碍辅助元素仅在弹窗展开时创建,因而当你在进行无障碍检测时请先打开下拉后再进行测试。对于 aria-label 与 aria-labelledby 属性缺失警告,请自行为 Select 组件添加相应无障碍属性。

    Select 虚拟滚动会模拟无障碍绑定元素。如果需要读屏器完整获取全部列表,你可以设置 virtual={false} 关闭虚拟滚动,无障碍选项将会绑定到真实元素上。

    使用 tagRender 生成的自定义标签,点击关闭时会呼出下拉框

    如果你不希望点击某个元素后下拉框自动出现(例如关闭按钮),可以在其上阻止 MouseDown 事件的传播。

    tsx
    <Select
    tagRender={(props) => {
    const { closable, label, onClose } = props;
    return (
    <span className="border">
    {label}
    {closable ? (
    <span
    onMouseDown={(e) => e.stopPropagation()}
    onClick={onClose}
    className="cursor-pointer"
    >
    ❎
    </span>
    ) : null}
    </span>
    );
    }}
    />
    Lucy
    Lucy
    Lucy
    Lucy
    基本使用

    基本使用。

    Select a person
    自定义搜索

    使用 filterOption 自定义搜索。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    a10
    c12
    a10
    c12
    多选

    多选,从已有条目中选择。

    Happy
    自定义下拉选项

    使用 optionRender 自定义渲染下拉选项。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Tags Mode
    标签

    标签形式的多选框,用户亦可自由输入。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Zhejiang
    Hangzhou
    联动

    省市联动是典型的例子,联动场景我们更推荐使用 Cascader 组件。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Lucy (101)
    获得选项的文本

    默认情况下 onChange 里只能拿到 value,如果需要拿到选中的节点文本 label,可以使用 labelInValue 属性。

    选中项的 label 会被包装到 value 中传递给 onChange 等函数,此时 value 是一个对象。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Select users
    搜索用户

    一个带有远程搜索,防抖控制,请求时序控制,加载状态的多选示例。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    custom dropdown render
    扩展菜单

    使用 popupRender 对下拉菜单进行自由扩展。如果希望点击自定义内容后关闭浮层,你需要使用受控模式自行控制(codesandbox)。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Outlined
    Lucy
    Filled
    Lucy
    Borderless
    Lucy
    Underlined
    Lucy
    形态变体

    Select 形态变体,可选 outlined filled borderless underlined 四种形态。

    5.13.0
    No option match
    自定义选中 label

    允许自定义渲染当前选中的 label, 可用于 value 回填但对应选项缺失而不想直接渲染 value 的场景。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon

    100000 Items

    a10
    c12
    大数据

    Select 默认针对大数据开启了虚拟滚动,因而获得了更好的性能,可以通过 virtual={false} 关闭。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon


    HangZhou #310000
    弹出位置

    可以通过 placement 手动指定弹出的位置。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Object
    Function
    自定义语义结构的样式和类

    通过 classNames 和 styles 传入对象/函数可以自定义 Select 的语义化结构样式。

    CodeSandbox Icon
    codepen icon
    External Link Icon
    Expand Icon
    6.0.0
    Select a person
    带搜索框

    展开后可对选项进行搜索。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Select an option
    多字段搜索

    使用 optionFilterProp 多字段搜索。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon


    a1
    a10
    c12
    a10
    c12
    三种大小

    三种大小的选择框,当 size 分别为 large 和 small 时,输入框高度为 40px 和 24px ,默认高度为 32px。

    Search to Select
    带排序的搜索

    在搜索模式下对过滤结果项进行排序。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    lucy
    分组

    用 OptGroup 进行选项分组。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    input search text
    搜索框

    搜索和远程数据结合。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    自动分词

    试下复制 露西,杰克 并粘贴到输入框里。只在 tags 和 multiple 模式下可用。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    User
    Lucy
    Lucy
    Lucy

    User
    Lucy
    Lucy
    Lucy
    前后缀

    自定义前缀 prefix 和后缀图标 suffixIcon。

    5.22.0
    Inserted are removed
    隐藏已选择选项

    隐藏下拉列表中已选择的选项。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    gold
    cyan
    自定义选择标签

    允许自定义选择标签的样式。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    + 4 ...
    Select Item...
    Hover Me
    响应式 maxTagCount

    多选下通过响应式布局让选项自动收缩。该功能对性能有所消耗,不推荐在大表单场景下使用。

    CodeSandbox Icon
    codepen icon
    External Link Icon
    Expand Icon
    自定义状态

    使用 status 为 Select 添加状态,可选 error 或者 warning。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Ava Swift
    1 / 3
    最大选中数量

    你可以通过设置 maxCount 约束最多可选中的数量,当超出限制时会变成禁止选中状态。

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    5.13.0
    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Hitu Icon
    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Hitu Icon