从 ReactJS 中的 onClick 道具获取图像 src
Get image src from props onClick in ReactJS
我正在从 API 中获取图像列表。然后我将这张图片传递给带有道具的单个 img 元素。这有助于我生成用于缩略图的图像列表。
编辑
图像缩略图是预览图,单击其中一个图像缩略图后,我想将全尺寸图像添加到页面中。
问题是我希望能够单击其中一个图像并提取其 src 值,以便我最终可以将该图像装载到完整的显示容器中:
我的努力只记录了 api 列表中的所有图像,而我真的只想要被点击的特定图像。
JSONreturn数据:
[{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
1: {image: {image: image: "https://image1.jpg"}}
2: {image: {image: image: "https://image2.jpg"}}
3: {image: {image: image: "https://image3.jpg"}}
4: {image: {image: image: "https://image4.jpg"}}
etc...
App.js:
// This import file is shown below
import Image from "./components/Images;"
const App = () => {
const [images, setImages] = useState([]);
const getImages = async () => {
const response = await fetch(
`https://api_for_the_images${key}`
);
const data = await response.json();
setImages(data.images);
};
return(
<>
{images.map((image) => (
<Images image={image.image} />
))}
</>
);
};
export default App;
Images.js:
import { useState } from "react";
const Images = (props) => {
const [ fullSize, setFullSIze ] = useState()
const getImage = () => {
// This return all images in the api list
console.log(props.image);
// I only want the image clicked on
setFullSize(props.image);
}
return(
<div className="container">
<img
className="api-image"
src={props.image}
onClick={getImage}
></img>
<div className="full-size-image">
// This should be a full size image of the
// image that was clicked from the api
<img src{fullSize}></img>
</div>
);
};
export default Images;
编辑
React 生成这个 html:
<div class="container">
<img class="api-image" src="https://image1.jpg/>
</div>
<div class="container">
<img class="api-image" src="https://image2.jpg/>
</div>
<div class="container">
<img class="api-image" src="https://image3.jpg/>
</div>
<div class="container">
<img class="api-image" src="https://image4.jpg/>
</div>
当 React 生成相同的特定元素时,如何定位它们?
如果需要知道点击了哪一个,调用函数时传值就可以了
import { useState } from "react";
const Images = (props) => {
const [ fullSize, setFullSIze ] = useState()
const getImage = (image) => {
console.log(image);
}
return(
<div className="container">
<img
className="api-image"
src={props.image}
onClick={() => {getImage(props.image)}}
></img>
<div className="full-size-image">
<img src{fullSize}></img>
</div>
);
};
export default Images;
你可以使用 map
,当你是 mapping
他们时,你可以给他们一个特定的 index
,然后你可以给他们一个 id
。
这样您就可以使用特定的 id
.
单独生成它们
我正在从 API 中获取图像列表。然后我将这张图片传递给带有道具的单个 img 元素。这有助于我生成用于缩略图的图像列表。
编辑
图像缩略图是预览图,单击其中一个图像缩略图后,我想将全尺寸图像添加到页面中。
问题是我希望能够单击其中一个图像并提取其 src 值,以便我最终可以将该图像装载到完整的显示容器中:
我的努力只记录了 api 列表中的所有图像,而我真的只想要被点击的特定图像。
JSONreturn数据:
[{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
1: {image: {image: image: "https://image1.jpg"}}
2: {image: {image: image: "https://image2.jpg"}}
3: {image: {image: image: "https://image3.jpg"}}
4: {image: {image: image: "https://image4.jpg"}}
etc...
App.js:
// This import file is shown below
import Image from "./components/Images;"
const App = () => {
const [images, setImages] = useState([]);
const getImages = async () => {
const response = await fetch(
`https://api_for_the_images${key}`
);
const data = await response.json();
setImages(data.images);
};
return(
<>
{images.map((image) => (
<Images image={image.image} />
))}
</>
);
};
export default App;
Images.js:
import { useState } from "react";
const Images = (props) => {
const [ fullSize, setFullSIze ] = useState()
const getImage = () => {
// This return all images in the api list
console.log(props.image);
// I only want the image clicked on
setFullSize(props.image);
}
return(
<div className="container">
<img
className="api-image"
src={props.image}
onClick={getImage}
></img>
<div className="full-size-image">
// This should be a full size image of the
// image that was clicked from the api
<img src{fullSize}></img>
</div>
);
};
export default Images;
编辑
React 生成这个 html:
<div class="container">
<img class="api-image" src="https://image1.jpg/>
</div>
<div class="container">
<img class="api-image" src="https://image2.jpg/>
</div>
<div class="container">
<img class="api-image" src="https://image3.jpg/>
</div>
<div class="container">
<img class="api-image" src="https://image4.jpg/>
</div>
当 React 生成相同的特定元素时,如何定位它们?
如果需要知道点击了哪一个,调用函数时传值就可以了
import { useState } from "react";
const Images = (props) => {
const [ fullSize, setFullSIze ] = useState()
const getImage = (image) => {
console.log(image);
}
return(
<div className="container">
<img
className="api-image"
src={props.image}
onClick={() => {getImage(props.image)}}
></img>
<div className="full-size-image">
<img src{fullSize}></img>
</div>
);
};
export default Images;
你可以使用 map
,当你是 mapping
他们时,你可以给他们一个特定的 index
,然后你可以给他们一个 id
。
这样您就可以使用特定的 id
.