reactjs 禁用点击模态外关闭React Js coreui模态外点击弹出不关闭模态?

czq61nw1  于 2022-12-12  发布在  React
关注(0)|答案(2)|浏览(163)
const [visible, setVisible] = useState(false)
return (
  
     setVisible(!visible)}>Launch static backdrop modal
     setVisible(false)}>
      
        Modal title
      
      
        I will not close if you click outside me. Don't even try to press escape key.
      
      
         setVisible(false)}>
          Close
        
        Save changes
      
    
  
)

核心用户界面React模态外部点击弹出窗口不关闭模态设置不工作,任何选项,我也尝试了背景{真/假}

xqkwcwgp

xqkwcwgp1#

您可以使用此静态模态组件代替动态模态组件。
如果您将背景设为静态,您的React模态组件的行为就像背景是静态的一样,这意味着在它外部单击时它不会关闭。单击下面的按钮来尝试。
编辑:如果您阅读this doc

末尾的表格,您会注意到您可以使用类型'static'来使模态不会在外部点击时关闭。
下面的代码将是如何使用的示例:

const [visible, setVisible] = useState(false)
return (
  <>
    <CButton onClick={() => setVisible(!visible)}>Launch static backdrop modal</CButton>
    <CModal visible={visible} onClose={() => setVisible(false)} backdrop={'static'}>  // this will make modal deosn't exit on outside click
      <CModalHeader>
        <CModalTitle>Modal title</CModalTitle>
      </CModalHeader>
      <CModalBody>
        I will not close if you click outside me. Don't even try to press escape key.
      </CModalBody>
      <CModalFooter>
        <CButton color="secondary" onClick={() => setVisible(false)}>
          Close
        </CButton>
        <CButton color="primary">Save changes</CButton>
      </CModalFooter>
    </CModal>
  </>
)
ejk8hzay

ejk8hzay2#

这是一个使用jquery的解决方案。

import $ from 'jquery';

useEffect( () => {
  $(document).on('click', '.modal.loading', () => setShowModal(0));  // <- add this
}, []);

    <CModal className="modal" visible={showModal == 3} >
      <CModalBody className="text-center">
        <CSpinner color="light"/>
      </CModalBody>
    </CModal>

相关问题