jos*_*edo 3 javascript reactjs bootstrap-4
我想在单击反应按钮时打开一个弹出窗口,我有这个,但弹出窗口不会出现:
<button type="button" class="btn btn-primary" data-toggle="modal" data-target={`#${props.idMessage}`}>
{props.idMessage}
</button>
<div class="modal fade" id={props.idMessage} tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
Run Code Online (Sandbox Code Playgroud)
使用 React 调试工具,我可以看到 props.id 明显不同,并且我的数据目标上的值与我的 id 相同,正如您所看到的,应该出现弹出窗口:
这是使用 React Hooks 实现这一目标的现代方法
import React, { useState } from "react";
const PopUp = ({ idMessage }) => {
// create state `open` with default as false
const [open, setOpen] = useState(false);
return (
<>
{/* click of button toggles `open` value therefore visibility */}
<button
onClick={() => setOpen(!open)}
type="button"
className="btn btn-primary"
data-toggle="modal"
data-target={`#${idMessage}`}
>
{idMessage}
</button>
{/* If open is true show your <div /> */}
{open && (
<div
className="modal fade"
id={idMessage}
tabIndex="-1"
role="dialog"
aria-labelledby="exampleModalLabel"
aria-hidden="true"
>
content
</div>
)}
</>
);
};
export default PopUp;
Run Code Online (Sandbox Code Playgroud)