Skip to content
Related Articles

Related Articles

Improve Article

How to detect click outside React component ?

  • Last Updated : 25 Jan, 2021

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 Structure

App.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


import React from 'react';
class App extends React.Component {
  constructor(props) {
    // Creating a reference = React.createRef();
  componentDidMount() {
    // Adding a click event listener
    document.addEventListener('click', this.handleOutsideClick);
  handleOutsideClick = (event) => {
    if ( && ! {
      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
export default App;

Filename- App.js:< Using Functional Component/p>


import React, { useEffect, useRef } from 'react'
function App(props) {
  const box = useRef(null);
  return (<div style={{
    margin: 300,
    width: 200, height: 200, backgroundColor: 'green'
export default App;
function useOutsideAlerter(ref) {
  useEffect(() => {
    // Function for click event
    function handleOutsideClick(event) {
      if (ref.current && !ref.current.contains( {
        alert("you just clicked outside of box!");
    // Adding click event listener
    document.addEventListener("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:

My Personal Notes arrow_drop_up
Recommended Articles
Page :