在React.js中添加addEventListener()
来实现在模型之外点击时关闭模型的功能,可以通过以下步骤实现:
addEventListener()
是一个JavaScript方法,用于在指定元素上注册一个事件处理程序。当指定的事件发生时,事件处理程序会被调用。
click
)、鼠标移动事件(mousemove
)等。以下是一个在React.js中实现点击模型外部关闭模型的示例:
import React, { useEffect, useRef } from 'react';
const Modal = ({ isOpen, onClose }) => {
const modalRef = useRef(null);
useEffect(() => {
const handleClickOutside = (event) => {
if (modalRef.current && !modalRef.current.contains(event.target)) {
onClose();
}
};
if (isOpen) {
document.addEventListener('mousedown', handleClickOutside);
}
return () => {
document.removeEventListener('mousedown', handleClickOutside);
};
}, [isOpen, onClose]);
if (!isOpen) return null;
return (
<div ref={modalRef} style={{ border: '1px solid black', padding: '20px', margin: '20px' }}>
<h2>Modal Content</h2>
<button onClick={onClose}>Close</button>
</div>
);
};
const App = () => {
const [isModalOpen, setIsModalOpen] = React.useState(false);
return (
<div>
<button onClick={() => setIsModalOpen(true)}>Open Modal</button>
<Modal isOpen={isModalOpen} onClose={() => setIsModalOpen(false)} />
</div>
);
};
export default App;
onClose
函数关闭模态框。通过以上步骤和代码示例,你可以在React.js中实现点击模型外部关闭模型的功能,并解决可能遇到的问题。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云