Parçacıklara Dön
ReactTypeScript

React useClickOutside Hook

Dropdown veya modal kapatmak için referanslı elemanın dışındaki tıklamaları algılar.

reacthookclickdropdown
import { useEffect, useRef } from class=class="text-emerald-400">"text-emerald-400">'react'

function useClickOutside<T extends HTMLElement>(callback: () => void) {
  const ref = useRef<T>(null)

  useEffect(() => {
    function handleClick(event: MouseEvent) {
      if (ref.current && !ref.current.contains(event.target as Node)) {
        callback()
      }
    }

    document.addEventListener(class=class="text-emerald-400">"text-emerald-400">'mousedown', handleClick)
    return () => document.removeEventListener(class=class="text-emerald-400">"text-emerald-400">'mousedown', handleClick)
  }, [callback])

  return ref
}

export default useClickOutside

Nasıl Kullanılır

Bir dropdown konteynerine bağlayın: const ref = useClickOutside<HTMLDivElement>(() => setOpen(false)). Ref'i sarmalayıcı elemana verin. Dışarı tıklamak callback'i tetikler.

İlgili Teknoloji

React

Aklınızda Bir Proje mi Var?

Fikrinizi nasıl hayata geçirebileceğimizi konuşalım. İlk konseptten üretime hazır ürüne kadar — yanınızdayız.

veya ücretsiz görüşme ayarlayın