2015-02-24 47 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

相關問題