如何在React中使用图像设置模式弹出窗口

时间:2018-08-15 06:41:08

标签: javascript css reactjs popup modalpopupextender

我在React中有一个Image类,并且我有一个按钮,该按钮应在每个图像上实现点击扩展。我决定使用Modal弹出窗口,因此当我单击时,Image将在Modal弹出窗口中显示更大。我发现很难将Modal设置为图像。

谢谢。

这来自React中的Image类:

<FontAwesome
  className="image-icon"
  name="expand"
  title="expand"
  onClick={this.showModal}
/>
<Modal show={this.state.isExpand} handleClose={this.hideModal} />

模式:

const Modal = ({ handleClose, show }) => {
  const showHideClassName = show ? 'modal display-block' : 'modal display-none';
  return (
    <div className={showHideClassName}>
      <section className="modal-main">
        <button onClick={handleClose}>close</button>
      </section>
    </div>
  );
};

1 个答案:

答案 0 :(得分:1)

尝试此示例代码。这是指向示例ImageComponent https://codesandbox.io/s/4xnxqz0ylx

的链接
export default class ImageComponent extends React.Component {
  state = { isOpen: false };

  handleShowDialog = () => {
    this.setState({ isOpen: !this.state.isOpen });
    console.log('cliked');
  };

  render() {
    return (
      <div>
        <img
          className="small"
          src="/Anj.png"
          onClick={this.handleShowDialog}
          alt="no image"
        />
        {this.state.isOpen && (
          <dialog
            className="dialog"
            style={{ position: 'absolute' }}
            open
            onClick={this.handleShowDialog}
          >
            <img
              className="image"
              src="/Anj.png"
              onClick={this.handleShowDialog}
              alt="no image"
            />
          </dialog>
        )}
      </div>
    );
  }
}