UNPKG

antd-mobile

Version:
25 lines (24 loc) 706 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); // 监听点击组件外部的事件 function useClickOutside(handler, ref) { (0, _react.useEffect)(() => { function handleClick(event) { if (!ref.current || ref.current.contains(event.target)) { return; } handler(event); } // 在捕获阶段监听,以确保在事件被阻止传播之前触发 document.addEventListener('click', handleClick, true); return () => { document.removeEventListener('click', handleClick, true); }; }, [handler, ref]); } var _default = useClickOutside; exports.default = _default;