2015-02-24 48 views
4

我正在学习React.js。在本教程中,作者使用onClick和bind,但是在某些地方,他不使用带onClick的绑定。 我无法区分两者之间的区别。为什么我们在onClick事件中使用绑定方法

<button onClick={this.handleAdd}>Add Item</button> 
+4

你可以发布另一个使用'bind'方法的例子吗? – 2015-02-24 05:18:58

回答

5

您可能使用bind为了将某个参数传递给处理程序方法。

例如:

render: function() { 
    return _.map(list, function(item) { 
     return <li onClick={this.clickItem.bind(this, item)}>{item.name}</li>; 
    }); 
}, 
clickItem: function(item, event) { 
    //do something with the clicked item 
} 

如果没有需要注入的说法,你不需要bind因为总是反应调用组件的范围的处理方法 - although this is changing soon

+0

这不是你使用'bind'方法的原因:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind – 2017-02-21 12:13:35

+1

非常真实。但我想我在React.Component存在之前发布了这个答案(实际上是的,我在我的答案中引用了“即将发生的变化”)。那时候,你总是使用'React.createClass()',这意味着'this.handleAdd'将总是绑定到组件实例,除非你有参数传递,否则你绝不会使用'bind'。我想如果你愿意的话,你可以重写'this',但这对组件的方法来说真的很奇怪。 – 2017-02-23 00:01:57

+0

嘿!感谢您澄清:+1: – 2017-02-23 09:34:53

相关问题