我在渲染函数的返回部分中有这个:
<table>
<tbody>
{nums.map(function(num, index){
return <tr key={ index }>{num} <input type="submit" value="unmatch" onClick={this.unMatchButtonClicked} />
</tr>;
})}
</tbody>
</table>
但是当我加载页面时,我收到一条错误消息:Cannot read property 'unMatchButtonClicked' of undefined
即使它是render:function()
unMatchButtonClicked: function(){
console.log('called');
},
那么this
的范围是什么?为什么它未定义?
答案 0 :(得分:0)
Array.map(function () {/*...*/}, this)
var unMatchButtonClicked = this.unMatchButtonClicked
和onClick={unMatchButtonClicked}
除此之外,您应该考虑为点击处理程序使用箭头功能,或将this
绑定到您的功能。
http://egorsmirnov.me/2015/08/16/react-and-es6-part3.html