第一种方式:onClick的用法
方案一
class App extends Component { constructor(props) { super(props) this.state={ initspeed:null, //读题速度 } } velocityfun(velocity){//选择速度 this.setState({ initspeed:velocity }) } render() { return ( <a onClick={this.velocityfun.bind(this,1)} className={this.state.initspeed === 1 ? 'sel':''}>慢</a> ) } }
本地效果为:D:\www\svn\project\react_abacus\src\components\Listenride.js
第二种方式:className用法
方案一
<a className={`symbol_btn ${this.state.initsymbol === 'yes'? 'sel' : ''}`}>读+号</a>
第三种方式:if-else用法
方案一
class App extends Component { render() { return ( <div className="game_start listen_start"> { this.state.overType ? ( <a onClick={this.stopBtnClick.bind(this)} className="over_btn">停止</a> ):( <a className="over_hover_btn">停止</a> ) } </div> ) } }
本地效果为:D:\www\svn\project\react_abacus\src\components\Listenride.js
{if...else...}五种方案说明:http://blog.csdn.net/wmzy1067111110/article/details/51538241
第四种方式:react带标签字符串转义为html解析
使用 dangerouslySetInnerHTML={{ __html: htmlString}}
<p className="calculate"><span dangerouslySetInnerHTML={{__html : this.state.display.calculate}} /></p>
本地效果:D:\www\svn\project\react_abacus\src\components\Listenride.js
react中将带标签的字符串转义为html解析 http://blog.csdn.net/sinat_30443713/article/details/78790036
第五种方式:style属性用法
{/*style属性必须使用 {{}} */} <div style={{width: 20px; height=30px}}> { props.text } </div>
<div className="img-responsive" style={{ backgroundSize:'100%',backgroundImage:'url(../src/assets/maibei.png)' }}><img src={item.poster.thumbnail} style={{width: '100%', transition: 'all 1.2s ease', opacity: 1}} /></div>
用map遍历数组写法有:
constructor() { super() this.state = { val: '', arr: [] } } { arr1.map((i,index) =>( <div onClick={this.onDelete.bind(this,index)}>{i}</div> )) }
还有一种写法:
constructor(props){ super(props); this.state={ datalist:[], playinglist:[], soonlist:[] } } componentWillMount(){ axios.get('v4/api/billboard/home').then(res=>{ //接口错误排除 if(res.data.data.billboards){ this.setState({ datalist:res.data.data.billboards }) } }) } { this.state.datalist.map((item)=> <div key={item.id}> <img src={item.imageUrl} style={{width:'100%'}} /> </div> ) }
另外一种写法
var students = ["张三然","李慧思","赵思然","孙力气","钱流量"]; ReactDOM.render( <ul> { students.map(function(username){ return <li>{username}</li> }) } </ul>, document.getElementById("ulLi") )
if判断:
<div className="film-word2"> <span>主 演:</span> <span>{ this.state.info.actors.map((item,index)=> <span key={index}>{index==0 ? ' ' : ' | '}{item.name}</span> ) }</span>
</div>
react中多个class的props判断处理
render(){ var className = ""; switch(this.props.某属性){ case 属性1: className = "className1"; break; ... default: className = "className"; } return ( <div> <div className={"card " + className}> </div> </div> ) }
react中className用法
<span className={`icon-xuanze1 pro-select-status ${item.selectStatus? 'pro-selected': ''}`}></span> <span className={`icon-jian ${item.selectNum > 0? 'edit-active':''}`} onClick={this.handleEdit.bind(this, index, -1)}></span> <span className={`icon-jia`} onClick={this.handleEdit.bind(this, index, 1)}></span>