使用键盘上的 Esc 键关闭模态弹出窗口
Close Modal Popup using Esc key on keyboard
我还需要使用“ESC”键关闭模态,目前它正在关闭“关闭”和“确认”按钮。我正在使用反应带,反应钩子。
键盘 {show} 和 handleClose
没用。
代码如下:
const DeleteUserModal = props => {
const { user, show } = props;
const deleteUser = async () => {
await props.removeUser(user);
props.onCloseModal();
};
const handleKeyPress = target => {
if (target.charCode === ENTER_KEY) {
deleteUser();
}
};
return (
<div onKeyPress={handleKeyPress}>
<Modal isOpen={show} toggle={props.onCloseModal} >
<ModalHeader toggle={props.onCloseModal}>
<IntlMessages id="modal.delete.user.title" />
</ModalHeader>
<ModalBody>
<IntlMessages id="modal.delete.user.description" />
</ModalBody>
<ModalFooter>
<Button className="cancel" onClick={props.onCloseModal}>
<IntlMessages id="modal.common.cancel" />
</Button>
<Button className="action" onClick={deleteUser}>
<IntlMessages id="modal.common.ok" />
</Button>
</ModalFooter>
</Modal>
</div>
);
};
export default DeleteUserModal;
通过两个动作跟随模态
您可以查看 bootstrap 文档。
如果没有找到,那么您可以为 ESC 键按下添加一个事件侦听器,然后调用 onCloseModal
在原版 JavaScript 中,您可以:
document.onkeydown = function (evt) {
if (evt.keyCode == 27) {
// Escape key pressed
props.onCloseModal();
}
};
您可以设置一个事件侦听器。
useEffect(() => {
const close = (e) => {
if(e.keyCode === 27){
props.onCloseModal()
}
}
window.addEventListener('keydown', close)
return () => window.removeEventListener('keydown', close)
},[])
我还需要使用“ESC”键关闭模态,目前它正在关闭“关闭”和“确认”按钮。我正在使用反应带,反应钩子。 键盘 {show} 和 handleClose 没用。
代码如下:
const DeleteUserModal = props => {
const { user, show } = props;
const deleteUser = async () => {
await props.removeUser(user);
props.onCloseModal();
};
const handleKeyPress = target => {
if (target.charCode === ENTER_KEY) {
deleteUser();
}
};
return (
<div onKeyPress={handleKeyPress}>
<Modal isOpen={show} toggle={props.onCloseModal} >
<ModalHeader toggle={props.onCloseModal}>
<IntlMessages id="modal.delete.user.title" />
</ModalHeader>
<ModalBody>
<IntlMessages id="modal.delete.user.description" />
</ModalBody>
<ModalFooter>
<Button className="cancel" onClick={props.onCloseModal}>
<IntlMessages id="modal.common.cancel" />
</Button>
<Button className="action" onClick={deleteUser}>
<IntlMessages id="modal.common.ok" />
</Button>
</ModalFooter>
</Modal>
</div>
);
};
export default DeleteUserModal;
通过两个动作跟随模态
您可以查看 bootstrap 文档。
如果没有找到,那么您可以为 ESC 键按下添加一个事件侦听器,然后调用 onCloseModal
在原版 JavaScript 中,您可以:
document.onkeydown = function (evt) {
if (evt.keyCode == 27) {
// Escape key pressed
props.onCloseModal();
}
};
您可以设置一个事件侦听器。
useEffect(() => {
const close = (e) => {
if(e.keyCode === 27){
props.onCloseModal()
}
}
window.addEventListener('keydown', close)
return () => window.removeEventListener('keydown', close)
},[])