How to use Popover Component in ReactJS ?
Last Updated :
23 Nov, 2023
A Popover is a graphical control which is a container-type element that hovers over the parent window, and it makes sure that all other interaction is blocked until it is selected. Material UI for React has this component available for us, and it is very easy to integrate.
Prerequisites
Steps to create the application:
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 material-ui modules using the following command.
npm install @material-ui/core
Project Structure:
Project Structure
Example: Now write down the following code in the App.js file.
Javascript
import React from "react" ;
import Button from "@material-ui/core/Button" ;
import Popover from "@material-ui/core/Popover" ;
export default function App() {
const [anchorEl, setAnchorEl] = React.useState( null );
const open = Boolean(anchorEl);
return (
<div style={{ display: "block" , padding: 30 }}>
<h4>How to use Popover Component in ReactJS?</h4>
<Button
variant= "contained"
color= "primary"
onClick={(event) => {
setAnchorEl(event.currentTarget);
}}
>
Click me to open Popover
</Button>
<Popover
anchorEl={anchorEl}
open={open}
id={open ? "simple-popover" : undefined}
onClose={() => {
setAnchorEl( null );
}}
transformOrigin={{
horizontal: "center" ,
vertical: "top" ,
}}
anchorOrigin={{
horizontal: "center" ,
vertical: "bottom" ,
}}
>
How are you?
</Popover>
</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.
Conclusion:
Using the Popover component from Material-UI helps in creation of interactive elements in ReactJS, enhancing user interactions by presenting contextual information or actions in a visually appealing manner.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...