Ant Design Library has this component pre-built, and it is very easy to integrate as well. Menu Component is used to display a versatile menu for navigation purposes. We can use the following approach in ReactJS to use the Ant Design Menu Component.
Menu Props:
- defaultOpenKeys: It is used to denote the array with the keys of the default opened sub-menus.
- defaultSelectedKeys: It is used to denote the array with the keys of default selected menu items.
- expandIcon: It is used to pass the custom expand icon of the submenu.
- forceSubMenuRender: It is used to force the render submenu into DOM before it becomes visible.
- inlineCollapsed: It is used to specify the collapsed status when the menu is in an inline mode.
- inlineIndent: It is used to denote the indent of inline menu items on each level in pixels.
- mode: It is used to denote the type of menu.
- multiple: It is used to allow the selection of multiple items.
- openKeys: It is used to denote the array with the keys of the currently opened sub-menus.
- overflowedIndicator: It is used to pass the customized icon when the menu is collapsed.
- selectable: It is used to allow selecting menu items.
- selectedKeys: It is used to denote the array with the keys of currently selected menu items.
- style: It is used to define the style of the root node.
- subMenuCloseDelay: It denotes the delay time in seconds to hide the submenu when the mouse leaves.
- subMenuOpenDelay: It denotes the delay time in seconds to show the submenu when the mouse enters.
- theme: It is used to define the color theme of the menu.
- triggerSubMenuAction: It is a callback function that can trigger submenu open/close.
- onClick: It is a callback function that is called when a menu item is clicked.
- onDeselect: It is a callback function that is called when a menu item is deselected.
- onOpenChange: It is a callback function that is called when sub-menus are opened or closed.
- onSelect: It is a callback function that is called when a menu item is selected.
Menu.Item Props:
- danger: It is used to display the danger style.
- disabled: It is used to indicate whether the menu item is disabled or not.
- icon: It is used to pass the icon of the menu item.
- key: It is used to denote the unique ID of the menu item.
- title: It is used to set the display title for the collapsed item.
Menu.SubMenu Props:
- children: It is used to denote the sub-menus or sub-menu items.
- disabled: It is used to indicate whether the sub-menu is disabled or not.
- icon: It is used to pass the icon of the sub-menu.
- key: It is used to denote the unique ID of the sub-menu.
- popupClassName: It is used to denote the sub-menu class name.
- popupOffset: It is used to denote the sub-menu offset.
- title: It is used to denote the title of the sub-menu.
- onTitleClick: It is a callback function that is triggered when the sub-menu title is clicked.
Menu.ItemGroup Props:
- children: It is used to denote the Sub-menu items.
- title: It is used to denote the title of the group.
Menu.Divider: It is used as a divider line in between menu items. This component is only used in vertical popup Menu or Dropdown Menu.
Creating React Application And Installing Module:
-
Step 1: Create a React application using the following command:
npx create-react-app foldername
-
Step 2: After creating your project folder i.e. foldername, move to it using the following command:
cd foldername
-
Step 3: After creating the ReactJS application, Install the required module using the following command:
npm install antd
Project Structure: It will look like the following.

Project Structure
Example: Now write down the following code in the App.js file. Here, App is our default component where we have written our code.
App.js
import React from 'react' ;
import "antd/dist/antd.css" ;
import { Menu } from 'antd' ;
const { SubMenu } = Menu;
export default function App() {
return (
<div style={{
display: 'block' , width: 700, padding: 30
}}>
<h4>ReactJS Ant-Design Menu Component</h4>
<Menu
defaultOpenKeys={[ '1' ]}
defaultSelectedKeys={[ '1' ]}
style={{ width: 300 }}
mode= "inline"
>
<SubMenu key= "1" title= "Settings" >
<Menu.Item key= "2" >Option 1</Menu.Item>
<Menu.Item key= "3" >Option 2</Menu.Item>
<SubMenu key= "4" title= "Sub-Menu" >
<Menu.Item key= "5" >Option 3</Menu.Item>
<Menu.Item key= "6" >Option 4</Menu.Item>
</SubMenu>
</SubMenu>
<SubMenu key= "7" title= "Profile" >
<Menu.Item key= "8" >Option 5</Menu.Item>
<Menu.Item key= "9" >Option 6</Menu.Item>
<Menu.Item key= "10" >Option 7</Menu.Item>
<Menu.Item key= "11" >Option 8</Menu.Item>
</SubMenu>
</Menu>
</div>
);
}
|
Step to Run Application: Run the application using the following command from the root directory of the project:
npm start
Output: Now open your browser and go to http://localhost:3000/, you will see the following output:

Reference: https://ant.design/components/menu/
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!