でこのキーワードは、私は私のdiv要素をクリックすることで、引数としてchangeSong機能通過インデックスを実行する必要がある機能React.js
changeSong: function(index) {
this.setState({currentSongIndex: index };
}
あります
var listTemp = data.map(function(item,index) {
var listTemp = data.map(function(item,index) {
return (
<div key={index} className="eachTrack" onClick={this.changeSong({index})}>
<span className="duration">{item.duration}</span>
<a href="#" className="songTemplate" >{item.artist} - {item.track}</a>
</div>
)
}.bind(this))
それはちょうど(のように私のchangeSong機能を3回実行します私がdiv要素を持つように)。今は単に "インデックス"引数を渡すことなく実行しているだけでなく、クリックしてイベントもありません。
var listTemp = data.map(function(item,index) {
return (
<div key={index} className="eachTrack" onClick={this.changeSong({index})}>
<span className="duration">{item.duration}</span>
<a href="#" className="songTemplate" >{item.artist} - {item.track}</a>
</div>
)
}.bind(this))
や地図機能にこのを渡す::他の人と
var listTemp = data.map(function(item,index) {
return (
<div key={index} className="eachTrack" onClick={this.changeSong({index})}>
<span className="duration">{item.duration}</span>
<a href="#" className="songTemplate" >{item.artist} - {item.track}</a>
</div>
)
}, this)
が指摘している、あなたはchangeSong機能をラップする場合がありますあなたはバインドにこれを必要とする
をごハンドラをラップ?さらに、 'changeSong'関数はレンダリング時に直ちに実行されるので、それ自身が関数を返さない限り、これもまた問題につながります。それを単に矢印の機能で包みます。 – oens
私は@oensが正しい道にあると信じています。答えを提出した後に彼のコメントに気がつきましたが、彼が何を指しているかを説明するかもしれません。 – abigwonderful