在反应中打开一个弹出窗口

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 相同,正如您所看到的,应该出现弹出窗口:

在此输入图像描述

iam*_*wtk 5

这是使用 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)