logoAnt Design

⌘ K
  • Design
  • Development
  • Components
  • Blog
  • Resources
5.25.0
  • 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
    • Tabs
  • 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
    • 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

Cascader

Cascade selection box.
Importimport { Cascader } from "antd";
Sourcecomponents/cascader
Docs
Edit this pageChangelog

Resources

Ant Design X
Ant Design Charts
Ant Design Pro
Pro Components
Ant Design Mobile
Ant Design Mini
Ant Design Web3
Ant Design Landing-Landing Templates
Scaffolds-Scaffold Market
Umi-React Application Framework
dumi-Component doc generator
qiankun-Micro-Frontends Framework
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

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

When To Use

  • When you need to select from a set of associated data set. Such as province/city/district, company level, things classification.
  • When selecting from a large data set, with multi-stage classifications separated for easy selection.
  • Chooses cascade items in one float layer for better user experience.

Examples

API

Common props ref:Common props

jsx
<Cascader options={options} onChange={onChange} />
PropertyDescriptionTypeDefaultVersion
allowClearShow clear buttonboolean | { clearIcon?: ReactNode }true5.8.0: Support object type
autoClearSearchValueWhether the current search will be cleared on selecting an item. Only applies when multiple is truebooleantrue5.9.0
autoFocusIf get focus when component mountedbooleanfalse
changeOnSelectChange value on each selection if set to true, see above demo for detailsbooleanfalse
classNameThe additional css classstring-
classNamesSemantic DOM classRecord<SemanticDOM, string>-5.25.0
defaultOpenInitial visible of cascader popupboolean-
defaultValueInitial selected valuestring[] | number[][]
disabledWhether disabled selectbooleanfalse
displayRenderThe render function of displaying selected options(label, selectedOptions) => ReactNodelabel => label.join(/)multiple: 4.18.0
tagRenderCustom render function for tags in multiple mode(label: string, onClose: function, value: string) => ReactNode-
popupClassNameThe additional className of popup overlay, use classNames.popup.root insteadstring-4.23.0
dropdownRenderCustomize dropdown content, use popupRender instead(menus: ReactNode) => ReactNode-4.4.0
popupRenderCustomize dropdown content(menus: ReactNode) => ReactNode-
dropdownStyleThe style of dropdown menu, use styles.popup.root insteadCSSProperties-
expandIconCustomize the current item expand iconReactNode-4.4.0
expandTriggerexpand current item when click or hover, one of click hoverstringclick
fieldNamesCustom field name for label and value and childrenobject{ label: label, value: value, children: children }
getPopupContainerParent Node which the selector should be rendered to. Default to body. When position issues happen, try to modify it into scrollable content and position it relative. examplefunction(triggerNode)() => document.body
loadDataTo load option lazily, and it cannot work with showSearch(selectedOptions) => void-
maxTagCountMax tag count to show. responsive will cost render performancenumber | responsive-4.17.0
maxTagPlaceholderPlaceholder for not showing tagsReactNode | function(omittedValues)-4.17.0
maxTagTextLengthMax tag text length to shownumber-4.17.0
notFoundContentSpecify content to show when no result matchesReactNodeNot Found
openSet visible of cascader popupboolean-4.17.0
optionsThe data options of cascadeOption[]-
placeholderThe input placeholderstring-
placementUse preset popup align config from builtinPlacementsbottomLeft bottomRight topLeft topRightbottomLeft4.17.0
prefixThe custom prefixReactNode-5.22.0
showSearchWhether show search input in single modeboolean | Objectfalse
sizeThe input sizelarge | middle | small-
statusSet validation status'error' | 'warning'-4.19.0
stylesSemantic DOM styleRecord<SemanticDOM, CSSProperties>-5.25.0
suffixIconThe custom suffix iconReactNode-
valueThe selected valuestring[] | number[]-
variantVariants of selectoroutlined | borderless | filled | underlinedoutlined5.13.0 | underlined: 5.24.0
onChangeCallback when finishing cascader select(value, selectedOptions) => void-
onDropdownVisibleChangeCallback when popup shown or hidden, use onOpenChange instead(value) => void-4.17.0
onOpenChangeCallback when popup shown or hidden(value) => void-
multipleSupport multiple or notboolean-4.17.0
removeIconThe custom remove iconReactNode-
showCheckedStrategyThe way show selected item in box. ** SHOW_CHILD: ** just show child treeNode. Cascader.SHOW_PARENT: just show parent treeNode (when all child treeNode under the parent treeNode are checked)Cascader.SHOW_PARENT | Cascader.SHOW_CHILDCascader.SHOW_PARENT4.20.0
searchValueSet search value, Need work with showSearchstring-4.17.0
onSearchThe callback function triggered when input changed(search: string) => void-4.17.0
dropdownMenuColumnStyleThe style of the drop-down menu column, use popupMenuColumnStyle insteadCSSProperties-
popupMenuColumnStyleThe style of the drop-down menu columnCSSProperties-
loadingIconThe appearance of lazy loading (now is useless)ReactNode-
optionRenderCustomize the rendering dropdown options(option: Option) => React.ReactNode-5.16.0

showSearch

PropertyDescriptionTypeDefaultVersion
filterThe function will receive two arguments, inputValue and option, if the function returns true, the option will be included in the filtered set; Otherwise, it will be excludedfunction(inputValue, path): boolean-
limitSet the count of filtered itemsnumber | false50
matchInputWidthWhether the width of list matches input, (how it looks)booleantrue
renderUsed to render filtered optionsfunction(inputValue, path): ReactNode-
sortUsed to sort filtered optionsfunction(a, b, inputValue)-

Option

typescript
interface Option {
value: string | number;
label?: React.ReactNode;
disabled?: boolean;
children?: Option[];
// Determines if this is a leaf node(effective when `loadData` is specified).
// `false` will force trade TreeNode as a parent node.
// Show expand icon even if the current node has no children.
isLeaf?: boolean;
}

Methods

NameDescriptionVersion
blur()Remove focus
focus()Get focus

Semantic DOM

Design Token

Component TokenHow to use?
Token NameDescriptionTypeDefault Value
controlItemWidthWidth of itemstring | number111
controlWidthWidth of Cascaderstring | number184
dropdownHeightHeight of dropdownstring | number180
menuPaddingPadding of menu item (single column)undefined | Padding<string | number>4
optionPaddingPadding of menu itemundefined | Padding<string | number>5px 12px
optionSelectedBgBackground color of selected itemstring#e6f4ff
optionSelectedColorText color when option is selectedstringrgba(0,0,0,0.88)
optionSelectedFontWeightFont weight of selected itemundefined | FontWeight600
Global TokenHow to use?
Basic

Cascade selection box for selecting province/city/district.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Custom trigger

Separate trigger button and result.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Disabled option

Disable option by specifying the disabled property in options.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Multiple

Select multiple options. Disable the checkbox by adding the disableCheckbox property and selecting a specific item. The style of the disable can be modified by the className.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Size

Cascade selection box of different sizes.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Search

Search and select options directly.

Now, Cascader[showSearch] doesn't support search on server, more info #5547

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Custom Field Names

Custom field names.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Custom dropdown

Customize the dropdown menu via dropdownRender.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Variants

Variants of Cascader, there are four variants: outlined filled borderless and underlined.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
5.13.0
Panel

Used for inline view case.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
>= 5.10.0
Default value

Specifies default value by an array.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Hover

Hover to expand sub menu, click to select option.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Change on select

Allows the selection of only parent options.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
ShowCheckedStrategy

Shows a selected item in a box using showCheckedStrategy.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Custom render

For instance, add an external link after the selected value.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Load Options Lazily

Load options lazily with loadData.

Note: loadData cannot work with showSearch.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Prefix and Suffix

Use prefix to customize the prefix content, use suffixIcon to customize the selection box suffix icon, and use expandIcon to customize the current item expand icon.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
5.22.0
Placement

You can manually specify the position of the popup via placement.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Status

Add status to Cascader with status, which could be error or warning.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Please select
Unselect Change city
 






Please select
Please select
Please select
Please select
Please select
Please select
Please select
  • Zhejiang
  • Jiangsu
  • Zhejiang
  • Jiangsu
No data
No data
Zhejiang / Hangzhou / West Lake
+ 2 ...
 


+ 0 ...
 
Zhejiang / Hangzhou / West Lake (752100)
Please select


Please select
ab


Please select


Please select


Please select


Please select
Error
 
Warning multiple
contributors / aojunhao123
  • root
    5.25.0
    Root element
  • popup.root
    5.25.0
    Popup element