【发布时间】:2021-10-09 02:52:06
【问题描述】:
class TileImages extends React.Component {
render() {
return (
<div className="layout">
<img src={airConditioning} key="air conditioning" alt="air conditioning" />,
<img src={avacado} key="avacado" alt="avacado" />,
<img src={airplane} key="airplane" alt="airplane" />,
<img src={clothes} key="new clothes" alt="new clothes" />
</div>
)
}
}
所以如果我想为每个<img> 标签添加一个“onClick”事件监听器,我该怎么做呢?使用常规 javascript 会更好吗?此外,为每个 <img> 创建单独的 React 组件是否更好,因为它们每个都有自己的属性并且必须按照其他图像的行为?
我对 React 比较陌生,并且是 Web 开发的业余爱好者,所以如果我的代码和问题没有意义,请多多包涵……
顺便说一句- 如果有人有任何提示,这是整个代码文件
import React from 'react'
//images
import airConditioning from './images/tiles_0.png'
import avacado from './images/tiles_1.png'
import airplane from './images/tiles_2.png'
import clothes from './images/tiles_3.png'
//CSS styling
import './Images.css'
// const imagesArray = [
// <img src={airConditioning} key="air conditioning" alt="air conditioning" />,
// <img src={avacado} key="avacado" alt="avacado" />,
// <img src={airplane} key="airplane" alt="airplane" />,
// <img src={clothes} key="new clothes" alt="new clothes" />
// ]
export class HomePage extends React.Component {
render() {
return (
<div>
<h1>Lifestyle</h1>
<br />
<TileImages />
</div>
)
}
}
class TileImages extends React.Component {
render() {
return (
<div className="layout">
<img src={airConditioning} key="air conditioning" alt="air conditioning" />,
<img src={avacado} key="avacado" alt="avacado" />,
<img src={airplane} key="airplane" alt="airplane" />,
<img src={clothes} key="new clothes" alt="new clothes" />
</div>
)
}
}
//add classes to react to onClick the image tiles using "react --patterns--"
【问题讨论】:
-
您不需要循环访问它们,您可以将 onclick 添加为属性,
onclick={function}。您还可以将单个 onclick 处理程序添加到父 div 并检查event.currentTarget以获取点击图像 -
它是 React,所以您至少是指
onClick,但是将这些图像转换为返回 Object.entries().map 的“字典”会更简洁,更易于维护.
标签: javascript html reactjs jsx backend