2021-09-24
1730
#react
Shalitha Suranga
67554
Sep 24, 2021 â‹… 6 min read

How to detect a click outside a React component

Shalitha Suranga Programmer | Author of Neutralino.js | Technical Writer

Recent posts:

A Guide To Wrapper Vs. Container Classes In CSS

A guide to wrapper vs. container classes in CSS

A breakdown of the wrapper and container CSS classes, how they’re used in real-world code, and when it makes sense to use one over the other.

Temitope Oyedele
Jul 7, 2025 â‹… 10 min read
Stagehand and Gemini logos on a gradient background symbolizing AI web automation

How to build a web-based AI agent with Stagehand and Gemini

This guide walks you through creating a web UI for an AI agent that browses, clicks, and extracts info from websites powered by Stagehand and Gemini.

Elijah Asaolu
Jul 4, 2025 â‹… 8 min read
Getting Started With Claude 4 API: A Developer's Walkthrough

Getting started with Claude 4 API: A developer’s walkthrough

This guide explores how to use Anthropic’s Claude 4 models, including Opus 4 and Sonnet 4, to build AI-powered applications.

Andrew Baisden
Jul 3, 2025 â‹… 16 min read
ai dev tool power rankings

AI dev tool power rankings & comparison [July 2025 edition]

Which AI frontend dev tool reigns supreme in July 2025? Check out our power rankings and use our interactive comparison tool to find out.

Chizaram Ken
Jul 2, 2025 â‹… 3 min read
View all posts

4 Replies to "How to detect a click outside a React component"

  1. Be careful.
    The first example using useEffect without dependencies array (it should be [handleClickOutside] or []) will be called on each render.
    The second one using class is wrong, .bind(this) creates a new reference and the listener will never be removed on componentWillUnmount.
    Use fat arrow function or binding on constructor, but never use .bind for events listeners !

    1. Thank you very much for these great suggestions. I updated code with binding in constructor. Also, I improved the hook-based example code by destructing props and putting handleClickOutside into useEffect as recommended in React Hooks FAQ docs.

  2. Is there a way to make it so the tooltip disappears when you click on either button or the component after already clicking it

Leave a Reply