react事件处理及动态样式添加
2024-08-28 21:17:27
多数据的事件绑定,循环数据来进行绑定。如下方式就是循环绑定事件的基本代码:
this.state.lists.map(function(value,index,array){
//代码片段
}.bind(this))
这里是一块事件绑定的例子,可以点击按钮,点击的那个按钮来实现选中的状态,并且可获取点击按钮的值:
var Ask = React.createClass({
getInitialState: function() {
return {
lists:[ //初始化button里面的值,即钱的值
{data:8},
{data:28},
{data:88}
],
addClass: false //用于添加class
}
},
handleItemClick:function(item,addClass){
var that = this; // 点击按钮改变样式
that.setState({
addClass: item
}); },
render: function() {
return ( <AMUIAvgGrid sm={2} className="am-thumbnails"> { // 选择金额按钮模块
this.state.lists.map(function(value,index,array){
return <Item
key={'key'+index}
data={value.data}
addClass={this.state.addClass}
onClick={this.handleItemClick} ></Item>
}.bind(this))
} </AMUIAvgGrid> );
}
}); // 悬赏金额按钮循环模块
var Item = React.createClass({
handleClick:function(){
this.props.onClick(this.props.data,this.props.addClass)
},
render:function(){
return (
<li>
<AMUIButton
amStyle="secondary"
className={this.props.addClass == this.props.data ? 'am-icon-check' : ''}
//this.props.addClass == this.props.data相等的话就显示am-icon-check样式
//this.props.data可以跟踪具体是哪一个button
//点击事件里面会传this.props.addClass过去,这个值的可随意设置一个初始值默认
//例如我在getInitialState方法里面传入的是false
//在handleItemClick方法里面可以确定具体点击的哪一个button
//当点击按钮的时候会将点击的当前按钮的this.props.data赋值给对应的this.props.addClass
//这时候class就可以动态切换了
block
onClick={this.handleClick}>
{this.props.data}元
</AMUIButton>
</li>
)
}
});
最新文章
- 【转】随机函数 rand() srand() 以及seed的原理
- 一次Promise 实践:异步任务的分组调度
- mmo设计
- ASP.NET Web API路由规
- xdebug
- 近期H5项目开发小结
- xml-xml试题
- Maven镜像配置
- java 获取黑屏信息保存在list中,截取字符执行
- mysql回想一下基础知识
- Unity3d 导入图像尺寸失真解决方案
- 页面刷新vuex数据消失问题解决方案
- .NET平台开源项目速览(20)Newlife.Core中简单灵活的配置文件
- python+eclipse+pydev开发环境搭建
- 探究如何永久更改Maven的Dynamic Web Project版本及pom.xml默认配置
- 基于vue制作简易的柱状图
- NodeJs 学习笔记(一)Wedding 项目搭建
- 初始C#(二)
- Android-Version Compatibility Issues (Gradle 2.14.1 requires Android Gradle plugin 2.1.3 (or newer)) but project is using
- 转:35个让人惊讶的 CSS3 动画效果演示