How to detect click outside React component ?
Last Updated :
11 Feb, 2022
We can use the createRef() method to create a reference for any element in the class-based component. Then we can check whether click event occurred in the component or outside the component.
In the functional component, we can use the useRef() hook to create a reference for any element.
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
Project Structure: It will look like the following.
Project StructureApp.js: Now write down the following code in the App.js file. Here, App is our default component where we have written our code.
Filename- App.js: Using Class base Component
JavaScript
import React from 'react';
class App extends React.Component {
constructor(props) {
super(props);
// Creating a reference
this.box = React.createRef();
}
componentDidMount() {
// Adding a click event listener
document.addEventListener('click', this.handleOutsideClick);
}
handleOutsideClick = (event) => {
if (this.box && !this.box.current.contains(event.target)) {
alert('you just clicked outside of box!');
}
}
render() {
return <div style={{
margin: 300,
width: 200, height: 200, backgroundColor: 'green'
}}
// Assigning the ref to div component
ref={this.box}>{this.props.children}</div>;
}
}
export default App;
Filename- App.js:< Using Functional Component/p>
JavaScript
import React, { useEffect, useRef } from 'react'
function App(props) {
const box = useRef(null);
useOutsideAlerter(box);
return (<div style={{
margin: 300,
width: 200, height: 200, backgroundColor: 'green'
}}
ref={box}>{props.children}</div>
)
}
export default App;
function useOutsideAlerter(ref) {
useEffect(() => {
// Function for click event
function handleOutsideClick(event) {
if (ref.current && !ref.current.contains(event.target)) {
alert("you just clicked outside of box!");
}
}
// Adding click event listener
document.addEventListener("click", handleOutsideClick);
return () => document.removeEventListener("click", handleOutsideClick);
}, [ref]);
}
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:
Similar Reads
How to detect click event outside Angular component ? In angular, clicks are detected by different ways. As click is an event, thus inside a component it is detected by simple event binding. A simple click via event binding for detection within the component is given as follows: javascript @Component({ selector: "geeks", template: ` <h1 (c
4 min read
How to create Menu Item Component in ReactJS ? React JS is a popular JavaScript library used for building user interfaces. It provides a component-based architecture that allows developers to create reusable UI elements. Material UI for React has this component available for us and it is very easy to integrate. We can use Menu Component in React
2 min read
How to use ClickAwayListener Component in ReactJS ? Detect if a click event happened outside an element. Whenever the user clicks somewhere in the document, this listener works. Material UI for React has this component available for us, and it is very easy to integrate.Prerequisites:React JSNPM & Node.jsMaterial UIApproach:To use ClickAwayListene
2 min read
How to change the state of react component on click? To change the state of the React component is useful when you are working on a single page application, it simply replaces the content of the existing component for the user without reloading the webpage. We have to set initial state value inside constructor function and set click event handler of t
2 min read
How to create an event in React ? In the development of contemporary webpages, user interactions play a pivotal role. These interactions include mouse clicks, keypresses, or even uncommon events like connecting a battery to a charger. As developers, our task is to actively "listen" to these events and subsequently ensure that our ap
2 min read
How To Use Modal Component In ReactJS? Modals are a popular UI component used to display content in a pop-up window like alerts, forms, or additional information. In ReactJS, there are multiple ways to implement a modal. In this article, we will discuss two common approaches: using reusable functional components and using the Material-UI
4 min read