今天我已經開始使用React構建,但是某些結果是某種意想不到的。所以我有些解釋會很好。我有以下組成部分:ReactJS直接訪問父函數onClick指向無限循環
var QuestionItem = React.createClass({
sendVote: function(e) {
$(e.target).hasClass('up')
? this.props.onVoteUpdate(this.props.id, 'up')
: this.props.onVoteUpdate(this.props.id, 'down');
},
render: function() {
return (
<li data-up={this.props.up} data-down={this.props.down}>
<div className="votes">
<span className="up" onClick={this.sendVote}>+</span>
<span className="down" onClick={this.sendVote}>-</span>
</div>
</li>
);
}
});
當我在跨度點擊我要觸發我的父組件的onVoteUpdate
功能,但爲什麼有必要創建一個名爲額外功能(對我來說)sendVote
?
由於如下所示,當我直接執行功能onClick
:
<div className="votes">
<span onClick={this.props.onVoteUpdate(this.props.id, 'up')}>+</span>
<span onClick={this.props.onVoteUpdate(this.props.id, 'down')}>-</span>
</div>
它在控制檯日誌的無限循環結束。
onVoteUpdate: function(question, state) {
console.log(question);
console.log(state);
});
這是不可能的,還是我做錯了什麼?