多數據的事件綁定,循環數據來進行綁定。如下方式就是循環綁定事件的基本代碼:
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> ) } });