我有一个modal,有typescript,next js和tailwindcss。我想在我点击modal之外的时候隐藏这个modal。但是我在tsx中得到了一些类型和其他错误。
在jsx中它工作的很好,但是在tsx中它不工作。如果有人帮助我,我将非常非常感谢。提前感谢
import { useRef, useEffect } from 'react';
const Backdrop = (props) => {
const ref = useRef();
const { onClick, children } = props;
const handleClickOutside = (event) => {
if (ref.current && !ref.current.contains(event.target)) {
onClick && onClick();
}
};
useEffect(() => {
document.addEventListener("click", handleClickOutside, true);
return () => {
document.removeEventListener("click", handleClickOutside, true);
};
}, []);
if (!children) {
return null;
}
return (
<div ref={ref}>
{children}
</div>
);
}
export default Backdrop;
1条答案
按热度按时间vbopmzt11#
使用IsClickOut.ts创建文件
复制此代码并粘贴
在您的文件中介绍如何使用它