Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当我';我在React应用程序中单击图像容器_Javascript_Reactjs - Fatal编程技术网

Javascript 当我';我在React应用程序中单击图像容器

Javascript 当我';我在React应用程序中单击图像容器,javascript,reactjs,Javascript,Reactjs,我想动态渲染的图像,然后显示模式时,图像是点击,它应该关闭时,模式背景点击。请帮助我,我是新来的 我该怎么做才能让它像这样工作呢?这里面有什么问题吗。我被困在这里面了 每当从api加载图像并单击它们时,都不会发生任何事情 import React from "react"; import axios from "axios"; import { Modal } from "./Modal"; class MediaGallery extends React.Component { cons

我想动态渲染的图像,然后显示模式时,图像是点击,它应该关闭时,模式背景点击。请帮助我,我是新来的

我该怎么做才能让它像这样工作呢?这里面有什么问题吗。我被困在这里面了

每当从api加载图像并单击它们时,都不会发生任何事情

import React from "react";
import axios from "axios";
import { Modal } from "./Modal";

class MediaGallery extends React.Component {
  constructor() {
    super();
    this.state = {
      data: "",
      show: false,
      loading: true
    };
  }

  showModal = () => {
    this.setState({ show: true });
  };
  hideModal = () => {
    this.setState({ show: false });
  };

  componentDidMount() {
    const url =
      "https://amyapi.com";

    axios
      .get(url)
      .then(response => {
        this.setState({
          data: response.data,
          loading: false
        });
      })
      .catch(error => {
        console.log(error);
      });
  }

  render() {
    let content;

    if (this.state.loading) {
      content = (
        <div>
          <div className="modal is-active">
            <div className="modal-background has-background-primary" />
            <div className="modal-content has-text-centered">
              <p classname="image is-48x48">
                <img
                  src="https://raw.githubusercontent.com/sharadcodes/css_snippets/master/Infinity-1.4s-200px.gif?token=AIXQ22JWJBKUHGP45ANQZ4K5SW46A"
                  alt=""
                />
              </p>
            </div>
          </div>
        </div>
      );
    } else {
      content = this.state.data.map((response, index) => {
        return (
          <div
            key={index}
            className="column is-one-quarter-desktop is-half-tablet"
            style={{ cursor: "zoom-in" }}
            onClick={this.showModal}
          >
            <Modal show={this.state.show} handleClose={this.hideModal}>
              <img src={response.acf.image} alt={response.acf.title} />
            </Modal>
            <div className="card cardimages">
              <div className="card-image" id="small-image-zoomable">
                <figure className="image is-3by2">
                  <img src={response.acf.image} alt={response.acf.title} />
                </figure>
                <div
                  className="card-content is-overlay is-clipped"
                  data={response.acf.title}
                >
                  <span className="tag is-primary">{response.acf.title}</span>
                </div>
              </div>
            </div>
          </div>
        );
      });
    }

    return (
      <div>
        <section className="hero is-medium is-bold has-background-black has-text-centered">
          <div className="hero-body">
            <div className="container">
              <h1 className="title is-1" style={{ color: "#FFD581" }}>
                Captured Moments
              </h1>
            </div>
          </div>
        </section>

        <div className="section" style={{ marginTop: "-1.2rem" }}>
          <div className="container">
            <div className="columns is-multiline" id="media-gallery">
              {content}
            </div>
          </div>
        </div>
      </div>
    );
  }
}

export default MediaGallery;
从“React”导入React;
从“axios”导入axios;
从“/Modal”导入{Modal};
类MediaGallery扩展了React.Component{
构造函数(){
超级();
此.state={
数据:“,
秀:假,,
加载:正确
};
}
showModal=()=>{
this.setState({show:true});
};
hideModal=()=>{
this.setState({show:false});
};
componentDidMount(){
常量url=
"https://amyapi.com";
axios
.get(url)
。然后(响应=>{
这是我的国家({
数据:response.data,
加载:错误
});
})
.catch(错误=>{
console.log(错误);
});
}
render(){
让内容;
if(this.state.loading){
内容=(

); }否则{ content=this.state.data.map((响应,索引)=>{ 返回( {response.acf.title} ); }); } 返回( 捕捉的瞬间 {content} ); } } 导出默认媒体库;
且模式代码为

import React from "react";

export const Modal = ({ handleClose, show, children }) => {
  const showHideClassName = show ? "is-active" : "";

  return (
    <div>
      <div className={{ showHideClassName } + " modal"} id="modal">
        <div className="modal-background" onClick={handleClose} />
        <div className="modal-content" style={{ width: "70vw!important" }}>
          <p className="image ">{children}</p>
        </div>
        <button
          className="modal-close is-large"
          aria-label="close"
          onClick={handleClose}
        />
      </div>
    </div>
  );
};
从“React”导入React;
导出常量模式=({handleClose,show,children})=>{
const showHideClassName=show?“处于活动状态”:“”;
返回(

{children}

); };
将模型置于三元条件下以显示。表示类似于三元条件中的何处?请尝试此className={
modal${showHideClassName}
}包含模板文本。它应该是,
className={${showHideClassName}modal`}
。注意``characters ie Template literals:.@AniruddhaShevle它正在工作,但模型现在没有关闭。怎么办?