reactjs - 如何使用 useState Reactjs 来控制打开或关闭 Modal Bootstrap?(不使用 ReactBootstrap 库)
问题描述
我正在使用 Bootstrap modal 和 Reactjs。现在我想控制如何在没有 Jquery 代码的情况下打开和关闭引导模式。所以我的想法是使用 useState 来控制模态的状态,如果为 true,它将添加类“show”以打开模态,而 false 它添加类“hide”。但它不起作用,我该如何解决这个问题?或者无论如何都可以在没有 Jquery 代码的情况下控制模态?谢谢
const [openModal, setopenModal] = useState(false);
const openmodal = () => {
setopenModal(!openModal);
};
return (
<div>
<button onClick={openmodal}>open</button>
<div id="mod" className={`modal ${openModal ? 'show' : 'hide'}`}>
<div className="modal-dialog modal-xl">
<div className="modal-content">
hello
</div>
</div>
</div>
</div>
解决方案
您可以使用数据属性。
选项可以通过数据属性或 JavaScript 传递。对于数据属性,将选项名称附加到 data-,如 data-show=""。
data-show 属性指定初始化时是否显示模态框。
<div id="mod" data-show={openModal ? 'true' : 'false'}> ... </div>
请参阅:https ://www.w3schools.com/Bootstrap/bootstrap_ref_js_modal.asp
或者,您可以使用 useRef 获取模态 DOM 元素并访问它。
推荐阅读
- gradle - gradle build 期间错误的含义
- javascript - 显示通过 javascript 从 URL 传输的值
- r - 如何更改回归绘图函数的代码?
- python - 我收到警告:tensorflow:来自python
- php - php 字符串连接(无)RTL
- c# - WPF 用户控件 mvvm
- javascript - 在Vue中显示具有多个选项的过滤数组
- python - 在 url 中组合多个 slug
- javascript - 由于window.onload,浏览器上的Javascript Uncaught TypeError
- python - 使用 re 模块获取 txt 文件中的特定重复部分