[javascript] React 컴포넌트 외부의 클릭 감지
http://daplus.net/javascript-react-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-%EC%99%B8%EB%B6%80%EC%9D%98-%ED%81%B4%EB%A6%AD-%EA%B0%90%EC%A7%80/
import React, { useRef, useEffect } from "react";
function useOutsideAlerter(ref) {
useEffect(() => {
function handleClickOutside(event) {
if (ref.current && !ref.current.contains(event.target)) {
alert("You clicked outside of me!");
}
}
document.addEventListener("mousedown", handleClickOutside);
return () => {
document.removeEventListener("mousedown", handleClickOutside);
};
}, [ref]);
}
export default function App(props) {
const wrapperRef = useRef(null);
useOutsideAlerter(wrapperRef);
return <div ref={wrapperRef}>Fuck{props.children}</div>;
}