logoAnt Design

⌘ K
  • 디자인
  • 개발
  • 컴포넌트
  • 블로그
  • 자료
5.21.3
  • Components Overview
  • General
    • Button
    • FloatButton
      5.0.0
    • Icon
    • Typography
  • Layout
    • Divider
    • Flex
      5.10.0
    • Grid
    • Layout
    • Space
    • Splitter
      5.21.0
  • Navigation
    • Anchor
    • Breadcrumb
    • Dropdown
    • Menu
    • Pagination
    • Steps
  • Data Entry
    • AutoComplete
    • Cascader
    • Checkbox
    • ColorPicker
      5.5.0
    • DatePicker
    • Form
    • Input
    • InputNumber
    • Mentions
    • Radio
    • Rate
    • Select
    • Slider
    • Switch
    • TimePicker
    • Transfer
    • TreeSelect
    • Upload
  • Data Display
    • Avatar
    • Badge
    • Calendar
    • Card
    • Carousel
    • Collapse
    • Descriptions
    • Empty
    • Image
    • List
    • Popover
    • QRCode
      5.1.0
    • Segmented
    • Statistic
    • Table
    • Tabs
    • Tag
    • Timeline
    • Tooltip
    • Tour
      5.0.0
    • Tree
  • Feedback
    • Alert
    • Drawer
    • Message
    • Modal
    • Notification
    • Popconfirm
    • Progress
    • Result
    • Skeleton
    • Spin
    • Watermark
      5.1.0
  • Other
    • Affix
    • App
      5.1.0
    • ConfigProvider
    • Util
      5.13.0

Select

선택 항목을 표시하는 드롭다운 메뉴.
가져오기import{ Select }from"antd";
소스components/select
문서
이 페이지 수정변경 로그

Resources

Ant Design Charts
Ant Design Pro
Ant Design Pro Components
Ant Design Mobile
Ant Design Mini
Ant Design Landing-Landing Templates
Scaffolds-Scaffold Market
Umi-React Application Framework
dumi-Component doc generator
qiankun-Micro-Frontends Framework
ahooks-React Hooks Library
Ant Motion-Motion Solution
China Mirror 🇨🇳

Community

Awesome Ant Design
Medium
Twitter
yuque logoAnt Design in YuQue
Ant Design in Zhihu
Experience Cloud Blog
seeconf logoSEE Conf-Experience Tech Conference
Work with Us

Help

GitHub
Change Log
FAQ
Bug Report
Issues
Discussions
StackOverflow
SegmentFault

Ant XTech logoMore Products

yuque logoYuQue-Document Collaboration Platform
AntV logoAntV-Data Visualization
Egg logoEgg-Enterprise Node.js Framework
Kitchen logoKitchen-Sketch Toolkit
Galacean logoGalacean-Interactive Graphics Solution
xtech logoAnt Financial Experience Tech
Theme Editor
Made with ❤ by
Ant Group and Ant Design Community
loading

사용 시기

  • 선택 항목을 표시하는 드롭다운 메뉴 - 기본 <select> 태그의 세련된 대안
  • 선택지가 5개 미만일 때 Radio 컴포넌트가 권장 됩니다.
  • 입력이 가능하면서 선택할 수도 있는 입력 상자를 원한다면 AutoComplete가 필요할 수 있습니다.

버전 5.11.0 이후 사용 방식 업그레이드

업그레이드 팁

5.11.0 버전 이후, 더 향상된 성능과 간소화된 코드 스타일을 만들 수 있는 <Select options={[... ]}> 을 제공합니다. 동시에 이전 버전은 더 이상 브라우저 콘솔에서 제공되지 않을 것이며, antd 6.0 버전에서 제거될 예정입니다.

// works when >=5.11.0, recommended ✅
return <Select options={[{ value: 'sample', label: <span>sample</span> }]} />;
// works when <5.11.0, deprecated when >=5.11.0 🙅🏻‍♀️
return (
<Select onChange={onChange}>
<Select.Option value="sample">Sample</Select.Option>
</Select>
);

사용 예시

API

공통 props 레퍼런스 Common props

Select props

PropertyDescriptionTypeDefaultVersion
allowClear사용자 정의 초기화 아이콘을 설정 가능하게 해줍니다.boolean | { clearIcon?: ReactNode }false5.8.0: Support object type
autoClearSearchValue항목을 선택할 때 현재 검색어가 지워질 지 여부를 설정할 수 있습니다. 이 옵션은 mode가 multiple 또는 tags 로 설정된 경우에만 적용됩니다.booleantrue
autoFocus기본으로 포커스가 설정됩니다.booleanfalse
defaultActiveFirstOption기본적으로 첫 번째 옵션을 활성화 할 지 여부를 설정할 수 있습니다.booleantrue
defaultOpen드롭다운을 열었을 때 초기 상태 설정 여부를 설정할 수 있습니다.boolean-
defaultValue초기 선택 옵션string | string[] |
number | number[] |
LabeledValue | LabeledValue[]
-
disabled비활성화 여부를 선택할 수 있습니다.booleanfalse
popupClassName드롭다운 메뉴의 className을 설정할 수 있습니다.string-4.23.0
popupMatchSelectWidth팝업 메뉴와 선택 입력이 같은 width 값인지 확인합니다. 기본값은 min-width 입력과 동일하게 설정됩니다. 값이 선택 width 보다 작으면 무시합니다. false 가상 스크롤을 비활성화 합니다.boolean | numbertrue5.5.0
dropdownRender사용자 정의 드롭다운 콘텐츠를 만들 수 있습니다.(originNode: ReactNode) => ReactNode-
dropdownStyle드롭다운 메뉴의 스타일을 정의할 수 있습니다.CSSProperties-
fieldNames사용자 정의 노드 레이블, 값 , 옵션, 그룹 레이블 필드 이름을 만들 수 있습니다.object{ label: label, value: value, options: options, groupLabel: label }4.17.0 (groupLabel added in 5.6.0)
filterOptiontrue일 경우, 입력 값으로 옵션을 필터링하며, 함수일 경우 해당 함수로 옵션을 필터링합니다. 함수는 두 가지 인자(inputValue와 option)를 받고, 함수가 true를 반환하면 해당 옵션은 필터링된 세트에 포함되며, 그렇지 않으면 제외됩니다.boolean | function(inputValue, option)true
filterSort검색 옵션을 정렬하기 위한 정렬 함수. Array.sort's compareFunction을 참조하세요.(optionA: Option, optionB: Option, info: { searchValue: string }) => number-searchValue: 5.19.0
getPopupContainer선택기(selector)가 렌더링될 상위 노드를 지정합니다. 기본값은 body입니다. 위치 문제가 발생하면 스크롤 가능한 콘텐츠로 수정하고 상대적으로 위치를 지정해보세요. 예시function(triggerNode)() => document.body
labelInValuelabel을 value에 포함할 지 여부를 설정합니다. 이 경우 value의 형식이 문자열에서 { value: string, label: ReactNode }로 변경됩니다.booleanfalse
listHeight팝업 높이를 설정합니다.number256
loading로딩 상태를 나타냅니다.booleanfalse
maxCount선택할 수 있는 항목의 최대 개수를 설정합니다. 이 속성은 mode가 multiple 또는 tags일 때만 적용됩니다.number-5.13.0
maxTagCount표시할 최대 tag 수를 설정합니다. responsive 모드는 렌더링 성능에 영향을 줄 수 있습니다.number | responsive-responsive: 4.10
maxTagPlaceholdertag를 표시하지 않을 때의 플레이스홀더입니다.ReactNode | function(omittedValues)-
maxTagTextLength표시할 tag 텍스트의 최대 길이를 설정합니다.number-
menuItemSelectedIcon다중 선택 옵션에서 선택된 메뉴 아이템의 사용자 정의 아이콘을 설정합니다.ReactNode-
modeSelect의 모드를 설정합니다.multiple | tags-
notFoundContent결과가 일치하지 않을 때 표시할 내용을 지정합니다.ReactNodeNot Found
open드롭다운의 열림 상태를 제어합니다.boolean-
optionFilterPropfilterOption이 true일 때 필터링에 사용할 옵션 속성의 값을 지정합니다. options가 설정되면 label로 설정되어야 합니다.stringvalue
optionLabelProp옵션의 어떤 속성이 Select의 내용으로 렌더링 될 지를 지정합니다. 예시stringchildren
options옵션을 선택합니다. jsx 정의보다 성능이 더 좋습니다.{ label, value }[]-
optionRender드롭다운 옵션을 사용자 정의 하여 렌더링합니다.(option: FlattenOptionData<BaseOptionType> , info: { index: number }) => React.ReactNode-5.11.0
placeholderSelect의 플레이스홀더입니다.ReactNode-
placement선택 상자가 팝업되는 위치를 설정합니다.bottomLeft bottomRight topLeft topRightbottomLeft
removeIcon사용자 정의 제거 아이콘입니다.ReactNode-
searchValue현재 입력된 "검색" 텍스트입니다.string-
showSearch선택이 가능한지 여부를 설정합니다.booleansingle: false, multiple: true
sizeSelect 입력의 크기를 설정합니다.large | middle | smallmiddle
status유효성 상태를 설정합니다.'error' | 'warning'-4.19.0
suffixIcon사용자 정의 접미사 아이콘입니다. 사용자 정의된 아이콘은 상호작용을 위해 클릭을 허용하지 않으며, pointer-events: none 스타일을 사용하여 이를 우회할 수 있습니다.ReactNode<DownOutlined />
tagRender태그 렌더링을 사용자 정의할 수 있습니다. 이 속성은 mode 가 multiple 또는 tags 일 때만 적용됩니다.(props) => ReactNode-
labelRender선택된 레이블 렌더링을 사용자 정의할 수 있습니다. (LabelInValueType 정의는 LabelInValueType참조)(props: LabelInValueType) => ReactNode-5.15.0
tokenSeparators구분자로 사용되는 기호를 지정합니다. 이 속성은 mode="tags" 일 때만 적용됩니다.string[]-
value현재 선택된 옵션(변경할 수 없는 배열로 간주됨)입니다.string | string[] |
number | number[] |
LabeledValue | LabeledValue[]
-
variant선택기(selector)의 다양한 변형을 제공합니다.outlined | borderless | filledoutlined5.13.0
virtualfalse로 설정하면 가상 스크롤을 비활성화합니다.booleantrue4.1.0
onBlurBlur 시 호출됩니다.function-
onChange옵션을 선택하거나 입력 값이 변경될 때 호출됩니다.function(value, option:Option | Array<Option>)-
onClear초기화될 때 호출됩니다.function-4.6.0
onDeselect선택이 해제될 때 호출됩니다. 매개변수는 선택된 옵션의 값입니다. multiple 또는 tags 모드에서만 호출되며, 해당 모드에서만 유효합니다.function(value: string | number | LabeledValue)-
onDropdownVisibleChange드롭다운이 열릴 때 호출됩니다.(open: boolean) => void-
onFocus포커스가 잡힐 때 호출됩니다.(event: FocusEvent) => void-
onInputKeyDown키가 눌렸을 때 호출됩니다.(event: KeyboardEvent) => void-
onPopupScroll드롭다운이 스크롤 될 때 호출됩니다.(event: UIEvent) => void-
onSearch입력 값이 변경되면 호출되는 콜백 함수입니다.function(value: string)-
onSelect옵션이 선택되었을 때 호출됩니다. 매개변수는 옵션의 값(또는 키)과 옵션 인스턴스입니다.function(value: string | number | LabeledValue, option: Option)-

참고 : 드롭다운 메뉴가 페이지와 함께 스크롤되거나 다른 팝업 레이어에서 Select를 트리거해야 할 경우, getPopupContainer={triggerNode => triggerNode.parentElement}를 사용하여 드롭다운 팝업의 렌더링 노드를 트리거 요소의 부모 요소로 고정하는 방법을 시도해보세요.

Select Methods

NameDescriptionVersion
blur()포커스 제거
focus()포커스 얻기

Option props

PropertyDescriptionTypeDefaultVersion
className옵션에 추가되는 클래스string-
disabled이 옵션을 비활성화booleanfalse
titleSelect 옵션의 title 속성string-
value기본적으로 이 속성을 사용해 필터링string | number-

OptGroup props

PropertyDescriptionTypeDefaultVersion
key그룹 키string-
label그룹 레이블React.ReactNode-
className옵션에 추가되는 클래스string-
titleSelect 옵션의 title 속성string-

Design 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옵션의 줄 높이undefined | LineHeight<string | number>1.5714285714285714
optionPadding옵션의 패딩undefined | Padding<string | number>5px 12px
optionSelectedBg옵션이 선택된 경우 배경색string#e6f4ff
optionSelectedColor옵션이 선택된 경우 텍스트 색상stringrgba(0, 0, 0, 0.88)
optionSelectedFontWeight옵션이 선택된 경우 글꼴 두께undefined | FontWeight600
selectorBg선택기의 배경색string#ffffff
showArrowPaddingInlineEnd화살표의 인라인 끝 패딩number18
singleItemHeightLG큰 크기의 단일 선택된 항목의 높이number40
zIndexPopup드롭다운의 z-indexnumber1050

글로벌 토큰어떻게 사용하나요?

FAQ

왜 tags 모드에서 검색 시 동일합 옵션이 2개씩 나타날 때가 있나요?

이것은 옵션의 label과 value가 다를 때 발생합니다. 필터링 로직을 변경하기 위해 optionFilterProp="label"을 사용할 수 있습니다.

dropdownRender에서 요소를 클릭했을 때 드롭다운이 닫히지 않는 이유는 무엇인가요?

open 속성을 사용하여 드롭다운의 열림 상태를 제어할 수 있습니다. open prop: codesandbox.

dropdownRender안에서 클릭해도 드롭다운이 닫히지 않도록 하려면 어떻게 하나요?

Select 컴포넌트는 포커스를 잃으면 닫힙니다. 이벤트를 수동으로 처리하여 이 동작을 방지할 수 있습니다.:

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

왜 커스텀(사용자 정의) 옵션을 사용할 때 스크롤이 깨질 때가 있나요?

가상 스크롤을 각 항목의 높이를 기본적으로 24px로 설정합니다. 옵션의 높이가 다를 경우, listItemHeight와 listHeight를 조정하여 리스트 컨테이너의 높이를 설정해야 합니다.:

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

참고: listItemHeight와 listHeight는 내부 속성입니다. 꼭 필요할 때만 수정하세요.

왜 a11y 테스트 보고서에서 aria- 속성이 누락되나요?

Select는 조작 중일 때만 접근성을 위한 보조 노드를 생성합니다. Select를 열고 다시 시도해보세요. aria-label 및 aria-labelledby 경고가 발생할 경우, 필요한 속성을 사용자의 요구에 맞게 Select에 추가하세요.

기본 가상 스크롤링은 접근성 바인딩을 시뮬레이션하기 위한 모의 요소를 생성합니다. 스크린 리더가 전체 목록에 완전히 접근해야 할 경우, virtual={false}로 설정하여 가상 스크롤링을 비활성화하면 접근성 옵션이 실제 요소에 바인딩됩니다.

Flip + Shift

뒤집기 후 공간이 충분하지 않다면 팝업창을 이동시킵니다.

codepen icon
External Link Icon
expand codeexpand code
기본 사용법

기본 사용법

codepen icon
External Link Icon
expand codeexpand code
사용자 정의 검색

filterOption을 사용하여 검색을 커스터마이즈합니다.

codepen icon
External Link Icon
expand codeexpand code
크기

선택 필드의 입력 높이는 기본적으로 32px입니다. size가 large로 설정되면 높이는 40px, small로 설정되면 24px입니다.

codepen icon
External Link Icon
expand codeexpand code
정렬 검색

정렬을 통해 옵션을 검색합니다.

codepen icon
External Link Icon
expand codeexpand code
그룹 항목

OptGroup을 사용하여 옵션을 그룹화합니다.

codepen icon
External Link Icon
expand codeexpand code
검색 상자

원격 데이터를 사용하여 검색.

codepen icon
External Link Icon
expand codeexpand code
자동 토큰화

Lucy, Jack을 복사하여 입력에 붙여넣습니다. 태그와 다중 모드로만 사용할 수 있습니다.

codepen icon
External Link Icon
expand codeexpand code
접미사

접미사 아이콘

codepen icon
External Link Icon
expand codeexpand code
선택 항목 숨기기

이미 선택된 드롭다운 옵션을 숨깁니다.

codepen icon
External Link Icon
expand codeexpand code
디버그 항목 표시
codepen icon
External Link Icon
expand codeexpand code
사용자 정의 선택된 레이블 렌더링

현재 선택한 레이블을 사용자 지정 렌더링 할 수 있으며, 이 레이블은 값 백필(backfill)에 사용할 수 있지만 해당 옵션이 누락되어 값을 직접 렌더링하지는 않습니다.

codepen icon
External Link Icon
expand codeexpand code
빅데이터

성능이 향상되는 가상스크롤 사용을 선택하고 virtual={false}을 설정하여 끄십시오.

codepen icon
External Link Icon
expand codeexpand code
배치

placement를 통해 팝업의 위치를 수동으로 지정할 수 있습니다.

codepen icon
External Link Icon
expand codeexpand code
4.0 디버그

디버그 용법

codepen icon
External Link Icon
expand codeexpand code
옵션 레이블 중앙 정렬

옵션 레이블이 중앙 정렬됨.

codepen icon
External Link Icon
expand codeexpand code
컴포넌트 Token

컴포넌트 Token

codepen icon
External Link Icon
expand codeexpand code
검색 필드가 포함된 Select

확장된 상태에서 옵션을 검색합니다.

codepen icon
External Link Icon
expand codeexpand code
다중 선택

기존 항목에서 다중 선택.

codepen icon
External Link Icon
expand codeexpand code
사용자 정의 드롭다운 항목

optionRender를 사용하여 드롭다운 옵션의 렌더링을 커스터마이즈 할 수 있습니다.

codepen icon
External Link Icon
expand codeexpand code
Tags

사용자가 목록에서 태그를 선택하거나 사용자 정의 태그를 입력할 수 있도록 허용합니다.

codepen icon
External Link Icon
expand codeexpand code
조정

지역 혹은 도시 선택을 조정하는 것은 일반적인 사용 사례 이며 선택을 조정하는 방법을 보여줍니다. 이 경우Cascader 컴포넌트 사용을 강력하게 권장 합니다.

codepen icon
External Link Icon
expand codeexpand code
선택된 항목의 값 가져오기

기본 동작으로 onChange 콜백은 선택된 항목의 value만 가져올 수 있습니다. 선택된 항목의 label 속성을 가져오기 위해 labelInValue 속성을 사용할 수 있습니다. 선택된 항목의 label은 onChange 콜백에 전달되기 위해 객체로 포장됩니다.

codepen icon
External Link Icon
expand codeexpand code
검색 및 유저 선택

원격검색, 디바운스(fetch), AJAX 콜백 순서 흐름 및 로딩 상태가 포함된 완전한 다중 선택 샘플.

codepen icon
External Link Icon
expand codeexpand code
사용자 정의 드롭다운

dropdownRender를 통해 드롭다운 메뉴를 사용자 지정합니다. 사용자 지정 콘텐츠를 클릭 후 드롭다운을 닫으려면 open 프롭을 제어해야 하며 codesandbox. 에서 확인할 수 있습니다.

codepen icon
External Link Icon
expand codeexpand code
다형성

outlined , filled, borderless 라는 세 가지 변형 중에서 선택할 수 있습니다.

codepen icon
External Link Icon
expand codeexpand code
5.13.0
사용자 정의 태그 렌더링

태그를 사용자 지정 렌더링 할 수 있습니다.

codepen icon
External Link Icon
expand codeexpand code
반응형 Tags 갯수

반응형 상황에서 태그로 자동 축소. 성능 비용이 발생할 수 있으므로 큰 폼에서는 권장 하지 않습니다.

codepen icon
External Link Icon
expand codeexpand code
상태

status를 사용하여 Select에 상태를 추가할 수 있으며, error 또는 warning이 될 수 있습니다.

codepen icon
External Link Icon
expand codeexpand code
동적 높이 설정

placement를 통해 팝업의 위치를 수동으로 지정할 수 있습니다.

codepen icon
External Link Icon
expand codeexpand code
내부 패널(사용하지 마십시오, 그렇지 않으면 해고 될 수 있습니다)

디버그용으로 사용. 실제 프로덕션에서는 사용하지 마십시오.

codepen icon
External Link Icon
expand codeexpand code
최대 갯수

maxCount 속성을 설정하여 선택할 수 있는 항목의 최대 수를 제어할 수 있습니다. 제한이 초과되면 옵션이 비활성화됩니다.

codepen icon
External Link Icon
expand codeexpand code
5.13.0
Lucy
Lucy
Lucy
Lucy
Select a person


a1
a10
c12
 
a10
c12
 
Search to Select
lucy
input search text
 
Lucy
Lucy
 
Inserted are removed
Lucy
Lucy
 
Lucy
Lucy
 
Lucy
Lucy
 
No option match

100000 Items

a10
c12
 


HangZhou #310000
233
Lucy
 
AntDesign
long, long, long piece of text
Select a option
normal
normal
 
 
Select a option
Select a option
Please select
a10
c12
 
a10
c12
 
a10
c12
 
a10
c12
 
a10
a10
c12
 
Select a person
a10
c12
 
a10
c12
 
China
 
 
Tags Mode
Zhejiang
Hangzhou
Lucy (101)
 
Select users
custom dropdown render
Outlined
Lucy
 
Filled
Lucy
 
Borderless
Lucy
 
gold
cyan
 
+ 4 ...
 
 
Select Item...
Hover Me
 
Lucy
Ava Swift
 
1 / 3