2016-09-07 15 views
1

私はonClickイベントをReactで動作させようとしていますが、運がないようにしています。 wrongeが何であるかわからないonClickイベントが反応しません。

var Item = React.createClass({ 
    render: function(){ 
    return <div>{this.props.text}</div>; 
    } 
}); 

var ItemList= React.createClass({ 
handleClick: function(i){ 
    console.log("clicked",i) 
}, 
renderListItems: function() { 
    var list = []; 
    for (var i = 0; i < 9; i++) { 
    var text = "item " + i; 
    list.push(<Item key={i} text={text} onClick={this.handleClick.bind(this,i)} />) 

    } 
    return list; 
}, 

render: function() { 

    return (
    <div> 
    { 
     this.renderListItems() 
    } 
    </div> 
) 
}}); 


ReactDOM.render(
    <ItemList />, 
    document.getElementById('container') 
); 

どうしてうまくいかないのですか?ここで

は、あなたがあなたの Itemコンポーネントに divへを通して、あなたの onClickハンドラを渡す必要があり https://jsfiddle.net/69z2wepo/55485/

答えて

4

上記のコードのためのデモです:

var Item = React.createClass({ 
    render: function(){ 
    return <div onClick={this.props.onClick}>{this.props.text}</div>; 
    } 
}); 
+0

多くのおかげで、これは私の問題を解決する – Faalsh

0

onClickハンドラはItemコンポーネントに記載されていません。

var Item = React.createClass({ 
    render: function(){ 
    return <div onClick={this.props.onClick}>{this.props.text}</div>; 
    } 
}); 

更新作業フィドルはここにある:https://jsfiddle.net/69z2wepo/55503/

+0

多くのおかげで、これは私の問題を解決 – Faalsh

関連する問題