react-responsive-modal :当我们在 div 之外单击时如何防止关闭模态
react-responsive-modal : how to prevent closing of modal when we click outside the div
我正在使用 react-responsive-modal 来实现我的模式。我面临的一个问题是,当我在屏幕上的任意位置单击模态 div 之外时,我的模态会关闭。
我希望仅当我单击取消或关闭按钮时关闭我的模态。
我找到了 onOverlayClick 函数道具,我用它来应用 preventDefault 但它没有用。
任何人都可以建议一种实现此功能的方法。提前致谢。
class CustomModal extends Component{
constructor(props) {
super(props);
}
onOverlay = (e) =>{
e.preventDefault();
}
render(){
const { props } = this;
return(
<Modal open={props.open} onClose={props.onCloseModal}
onOverlayClick={e =>this.onOverlay(e)} center>
<div className="on-setting-modal">
<h6>"are you sure ?"</h6>
<div className="on-setting-modal-buttons">
{
!!props.showCancel &&
<button onClick={props.onCloseModal} >Cancel</button>
}
<button onClick={props.onOkModal} >OK</button>
</div>
</div>
</Modal>
)
}
}
export default CustomModal
您的问题可以通过使用名为 closeOnOverlayClick={false}
的 属性 来解决,这使得当我们点击叠加层时模态框不会关闭
您可以在您的 Modal 组件中添加 closeOnOverlayClick={false}
只需将onOverlayClick设置为false即可解决问题
我正在使用 react-responsive-modal 来实现我的模式。我面临的一个问题是,当我在屏幕上的任意位置单击模态 div 之外时,我的模态会关闭。 我希望仅当我单击取消或关闭按钮时关闭我的模态。 我找到了 onOverlayClick 函数道具,我用它来应用 preventDefault 但它没有用。
任何人都可以建议一种实现此功能的方法。提前致谢。
class CustomModal extends Component{
constructor(props) {
super(props);
}
onOverlay = (e) =>{
e.preventDefault();
}
render(){
const { props } = this;
return(
<Modal open={props.open} onClose={props.onCloseModal}
onOverlayClick={e =>this.onOverlay(e)} center>
<div className="on-setting-modal">
<h6>"are you sure ?"</h6>
<div className="on-setting-modal-buttons">
{
!!props.showCancel &&
<button onClick={props.onCloseModal} >Cancel</button>
}
<button onClick={props.onOkModal} >OK</button>
</div>
</div>
</Modal>
)
}
}
export default CustomModal
您的问题可以通过使用名为 closeOnOverlayClick={false}
的 属性 来解决,这使得当我们点击叠加层时模态框不会关闭
您可以在您的 Modal 组件中添加 closeOnOverlayClick={false}
只需将onOverlayClick设置为false即可解决问题