首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在React中处理onClick事件

在React中处理onClick事件
EN

Stack Overflow用户
提问于 2016-10-31 23:31:28
回答 1查看 1.2K关注 0票数 0

我使用下面的组件来显示React中的图像列表。

代码语言:javascript
复制
class Viewer extends React.Component{

  constructor(props){
    super(props);
    this.state = {
      images : ImageList
    };
  }

  render(){
    return (
      <div className="row">
        <div className="image-viewer">
          <ul className="list-inline">
            {this.state.images.map(function (image) {
              return (<li key={image.mediaId}><a href="#"><img src={image.src}
                                                               className="img-responsive img-rounded img-thumbnail"
                                                               alt={image.mediaId}/></a></li>);
            })}

          </ul>
        </div>
      </div>
    );
  }
}

我想捕捉图像上的onClick事件来做一些处理,比如应用一个CSS来放置一个覆盖。我该如何做出反应。请理解我的反应是新的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-01 02:20:16

如果您更新组件以使其具有onClick={this.onImageClick.bind(this, image.mediaId),那么您可以处理onClick,并知道单击了哪个图像,保存在状态中,并使用它在呈现时将className应用到图像(如果这正是您想要的!)。

所以就像这样:

代码语言:javascript
复制
{this.state.images.map(function (image) {
  return (<li key={image.mediaId} className={this.state.activeImage === image.mediaId ? 'active' : undefined}><a href="#" onClick={this.onClick.bind(this, image.mediaId)}><img src={image.src}  className="img-responsive img-rounded img-thumbnail" alt={image.mediaId}/></a></li>);
})}

然后onClick处理程序-

代码语言:javascript
复制
onClick: function (mediaId) {
  this.setState({activeImage: mediaId});
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40352074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档