2016-08-26 14:42:41 +08:00
---
category: Components
cols: 1
type: Navigation
2016-08-26 15:07:46 +08:00
title: Menu
2020-05-31 11:48:34 +08:00
cover: https://gw.alipayobjects.com/zos/alicdn/3XZcjGpvK/Menu.svg
2016-08-26 14:42:41 +08:00
---
2019-10-28 09:09:22 +08:00
A versatile menu for navigation.
2016-08-26 14:42:41 +08:00
2016-09-10 13:43:30 +08:00
## When To Use
2016-08-26 14:42:41 +08:00
2019-10-28 09:09:22 +08:00
Navigation is an important part of any website, as a good navigation setup allows users to move around the site quickly and efficiently. Ant Design offers top and side navigation options. Top navigation provides all the categories and functions of the website. Side navigation provides the multi-level structure of the website.
2016-08-26 14:42:41 +08:00
2019-10-28 09:09:22 +08:00
More layouts with navigation: [Layout ](/components/layout ).
2017-06-30 21:10:47 +08:00
## API
2016-08-26 14:42:41 +08:00
2019-12-26 14:37:39 +08:00
```jsx
2019-12-26 15:10:15 +08:00
< Menu >
2016-08-26 14:42:41 +08:00
< Menu.Item > Menu< / Menu.Item >
< SubMenu title = "SubMenu" >
< Menu.Item > SubMenuItem< / Menu.Item >
< / SubMenu >
2019-12-26 15:10:15 +08:00
< / Menu >
2016-08-26 14:42:41 +08:00
```
2017-06-16 16:56:03 +08:00
### Menu
2016-08-26 14:42:41 +08:00
2019-07-11 14:14:33 +08:00
| Param | Description | Type | Default value | Version |
| --- | --- | --- | --- | --- |
2019-10-30 16:28:28 +08:00
| defaultOpenKeys | Array with the keys of default opened sub menus | string\[] | | |
| defaultSelectedKeys | Array with the keys of default selected menu items | string\[] | | |
| forceSubMenuRender | Render submenu into DOM before it becomes visible | boolean | false | |
| inlineCollapsed | Specifies the collapsed status when menu is inline mode | boolean | - | |
| inlineIndent | Indent (in pixels) of inline menu items on each level | number | 24 | |
2020-01-17 17:23:48 +08:00
| mode | Type of menu; `vertical` , `horizontal` , or `inline` | `vertical` \| `horizontal` \| `inline` | `vertical` | |
2019-10-30 16:28:28 +08:00
| multiple | Allows selection of multiple items | boolean | false | |
| openKeys | Array with the keys of currently opened sub-menus | string\[] | | |
| selectable | Allows selecting menu items | boolean | true | |
| selectedKeys | Array with the keys of currently selected menu items | string\[] | | |
2020-04-28 14:09:54 +08:00
| style | Style of the root node | CSSProperties | | |
2019-10-30 16:28:28 +08:00
| subMenuCloseDelay | Delay time to hide submenu when mouse leaves (in seconds) | number | 0.1 | |
| subMenuOpenDelay | Delay time to show submenu when mouse enters, (in seconds) | number | 0 | |
2020-01-17 17:23:48 +08:00
| theme | Color theme of the menu | `light` \| `dark` | `light` | |
2019-10-30 16:28:28 +08:00
| onClick | Called when a menu item is clicked | function({ item, key, keyPath, domEvent }) | - | |
| onDeselect | Called when a menu item is deselected (multiple mode only) | function({ item, key, keyPath, selectedKeys, domEvent }) | - | |
| onOpenChange | Called when sub-menus are opened or closed | function(openKeys: string\[]) | noop | |
| onSelect | Called when a menu item is selected | function({ item, key, keyPath, selectedKeys, domEvent }) | none | |
2019-11-22 10:33:34 +08:00
| overflowedIndicator | Customized icon when menu is collapsed | ReactNode | - | |
2016-08-26 14:42:41 +08:00
> More options in [rc-menu](https://github.com/react-component/menu#api)
2017-06-16 16:56:03 +08:00
### Menu.Item
2016-08-26 14:42:41 +08:00
2020-04-26 23:16:15 +08:00
| Param | Description | Type | Default value | Version |
| -------- | ------------------------------------ | --------- | ------------- | ------- |
| disabled | Whether menu item is disabled | boolean | false | |
| key | Unique ID of the menu item | string | | |
| title | Set display title for collapsed item | string | | |
| icon | icon of the menu item | ReactNode | | 4.2.0 |
2020-04-30 21:14:10 +08:00
| danger | Display the danger style | boolean | false | 4.3.0 |
2020-04-26 23:16:15 +08:00
> Note: `icon` is a newly added prop in`4.2.0`. For previous versions, please use the following method to define the icon.
>
> ```jsx
> <Menu.Item>
> <PieChartOutlined />
> <span>Option 1</span>
> </Menu.Item>
> <Menu.SubMenu
> title={
> <>
> <PieChartOutlined />
> <span>Option 2</span>
> </>
> }
> >
> ...
> </Menu.SubMenu>
> ```
2016-08-26 14:42:41 +08:00
2017-06-16 16:56:03 +08:00
### Menu.SubMenu
2016-08-26 14:42:41 +08:00
2019-07-11 14:14:33 +08:00
| Param | Description | Type | Default value | Version |
| --- | --- | --- | --- | --- |
2019-11-22 10:33:34 +08:00
| popupClassName | Sub-menu class name | string | | |
2019-10-30 16:28:28 +08:00
| children | Sub-menus or sub-menu items | Array< MenuItem\|SubMenu> | | |
| disabled | Whether sub-menu is disabled | boolean | false | |
| key | Unique ID of the sub-menu | string | | |
2020-04-26 23:16:15 +08:00
| title | Title of sub menu | string\|ReactNode | | |
| icon | Icon of sub menu | ReactNode | | 4.2.0 |
2019-10-30 16:28:28 +08:00
| onTitleClick | Callback executed when the sub-menu title is clicked | function({ key, domEvent }) | | |
2016-08-26 14:42:41 +08:00
2017-06-16 16:56:03 +08:00
### Menu.ItemGroup
2016-08-26 14:42:41 +08:00
2019-07-11 14:14:33 +08:00
| Param | Description | Type | Default value | Version |
| -------- | ------------------ | ----------------- | ------------- | ------- |
2019-10-28 09:09:22 +08:00
| children | sub-menu items | MenuItem\[] | | |
2019-07-11 14:14:33 +08:00
| title | title of the group | string\|ReactNode | | |
2016-11-15 14:12:25 +08:00
### Menu.Divider
2017-09-08 09:45:01 +08:00
Divider line in between menu items, only used in vertical popup Menu or Dropdown Menu.