react 动态操作className
来源:互联网 发布:知乎 angelababy 编辑:程序博客网 时间:2024/06/06 23:54
最近刚开始学习react.js 要直接应用到公司的项目中,所以入得坑甚至是走的弯路数不胜数,不管是多么复杂的还是多么白痴的坑,现在一一记录下来。
如下图,是其中一个设置性别的页面效果图,按照jQuery的写法就是绑定点击事件并且XX.addClass('XX').siblings().removeClass('XX');其实在react中也很简单,但是因为对基础知识没有系统的学习,所以入坑了。下面展示最后自己总结的两个方法,日后再有更好的方法时再进行总结。
方案一:(改变style)
<body><div class="page mine_memberInfo_sexPage" id="mineMemberInfoSexPage"></div></body><script type="text/babel"> var SexSelect = React.createClass({ getInitialState: function () { return{ sex:"male" } }, manItemClick:function () { this.setState({ sex:"male" }) }, femaleItemClick:function () { this.setState({ sex:"female" }) }, render: function () { var sexActiveStyle = { backgroundImage: "url('img/images/mine_memberInfo_sex_gou.png')", backgroundSize: "13px 10px", backgroundRepeat: "no-repeat", backgroundPosition: "right center" }; var man = { width: "100%", padding: "6% 0", borderBottom: "1px solid #efeff4" }; var female ={ width: "100%", padding: "6% 0", }; var sex = this.state.sex; return( <div className="container"> <div className="sexSelectWrap"> <div className="man" style ={sex == "male" ? sexActiveStyle: man } onClick={this.manItemClick}> <div>男</div> </div> <div className="female" style ={sex == "female" ? sexActiveStyle: female} onClick={this.femaleItemClick}> <div>女</div> </div> </div> <button>确定</button> </div> ) } }); ReactDOM.render( <SexSelect/>, document.getElementById("mineMemberInfoSexPage") )</script>
方案二:(直接操纵className)
<body><div class="page mine_memberInfo_sexPage" id="mineMemberInfoSexPage"></div></body><script type="text/babel"> var SexSelect = React.createClass({ getInitialState: function () { return{ sex:"male" } }, manItemClick:function () { this.setState({ sex:"male" }) }, femaleItemClick:function () { this.setState({ sex:"female" }) }, render: function () { var sex = this.state.sex; return( <div className="container"> <div className="sexSelectWrap"> <div className={sex == "male" ? "man sexActive": "man"} onClick={this.manItemClick}> <div>男</div> </div><div className={sex == "female" ? "female sexActive": "female"} onClick={this.femaleItemClick}><div>女</div></div></div><button>确定</button></div>)}});ReactDOM.render(<SexSelect/>,document.getElementById("mineMemberInfoSexPage"))</script>其实。这个过程没有什么难度,但是因为将<div className={sex == "female" ? "female sexActive": "female"} onClick={this.femaleItemClick}>写成<div className=“sex == "female" ? female sexActive: female“ onClick={this.femaleItemClick}>而出现了很多错误,以至于以为不能直接操纵className
阅读全文
0 0
- react 动态操作className
- className ~
- react中styleName和className的相关用法
- 操作ClassName的工具函数(JavaScript权威指南)
- WEB应用之:JS className 的简单操作
- React普通样式(className)和行内样式(LineStyle)多种设置样式设置详解
- React 动态增加compoent
- React动态添加事件
- React动态添加事件
- React,动态交互式用户界面
- React Native动态布局
- React-DOM操作详解
- React-DOM操作详解
- react操作表单
- React之表格操作
- React DOM操作
- React-native基础操作
- 动态添加类和元素样式属性(style and className)
- SpringBoot 启动服务器失败 报错 spring-boot Failed to start component [StandardServer[-1]]
- Java replaceAll()方法报错Illegal group reference
- truncate/delete/drop的区别?
- Android系统移植
- Mouse without Borders – 用一套鼠标/键盘控制四台电脑
- react 动态操作className
- NUMECA_FINE_V8.6.1 世界最著名的泵轮、叶轮、螺旋桨等的叶片分析及飞机机翼空气动力学分析\
- dasdsd
- 回调函数
- Sophix移动热修复之在AndroidStudio项目集成SDK(一)
- HDU1016(dfs)
- 不再纠结前置++与后置++
- Qrcode二维码生成
- 标准I/O