【问题标题】:Pop up Modal component in react on button click在按钮单击时弹出模态组件
【发布时间】:2021-04-27 06:42:54
【问题描述】:

我正在尝试在按钮单击时弹出自定义登录模式。

我的代码:

// ModalWrap.js
      <section>     
         <div className="modal fade" id="basicModal" tabIndex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
            <div className="modal-dialog" style={{maxWidth: "420px"}}>
              .....
             
             </div>
           </div>
        </section>

在我的 Index.js 文件中,我尝试调用此模式 从“react-bootstrap”导入{ Modal };

<Modal show={isOpen} onHide={hideModal}>
    <ModalWrap/>
</Modal>

但是这里的问题,你可以看到我必须在Modal 组件中调用我的ModalWrap,有没有其他方法可以实现它。我不想在我的Index.js 中再次调用模态。

【问题讨论】:

  • 为什么必须将ModalWrap 组件包装在另一个Modal 组件中?
  • 请看看我的回答,也许它会帮助你:)
  • 如果我不包裹在 Modal 中,它就不会像它应该的那样工作
  • 这是什么意思?有错误吗?您能否分享整个 ModalWrap 组件,以便我们查看它是如何安装和打开/关闭的?
  • 您是否正在寻找 Modal.confirm(...) 方法而不是 &lt;Modal&gt;&lt;Modal.Header /&gt;.....&lt;/Modal&gt;

标签: javascript reactjs popup bootstrap-modal react-bootstrap


【解决方案1】:

您可以只在此处传递道具,而不是在 ModalWrap 中定义它们。 所以在 index.js 中:

    <ModalWrap isOpen={isOpen} hideModal={hideModal}/>

而在 ModalWrap 组件内部只是这样做:

     <Modal show={props.isOpen} onHide={props.hideModal} dialogClassName="my-modal">
       // rest of code
     </Modal>

【讨论】:

  • 如果我没有在我的 ModalWrap 中使用 Modal 组件,我正在使用 div。因为我正在使用 react-bootstrap
  • @naive_user 但是 react-bootstrap 中有模态,这里是 - react-bootstrap.github.io/components/modal ,你可以重用它。为什么要做已经完成的事情?
  • 因为如果我使用 react-bootstrap 的 Modal 的话定制是非常困难的
  • 如果你想在 ModalWrap 中有一个 div,你必须添加额外的类和样式,所以它只有在 show 为 true 时才可见,react-bootstrap modal 默认已经有了它
  • 我已经更改了我的 ModalWrap 代码。这就是它的样子
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-26
  • 2020-02-12
  • 1970-01-01
  • 2012-05-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多