2015-03-03 58 views
1

我在學習Reactjs,並且想要設計一個5行的表,其中每行包含5個<input type="text">使用參數Onchange的事件處理

關於onChange事件我想提醒它的行號和列號。所以我想傳遞2個參數給onChange,這是它的「行」和「列」號。

我使用此代碼,但並不我使用這方面的工作

React.createElement('input', 
{value:newValue,onChange:_this.handleChange.bind(this,index,row) 

在事件處理程序:

handleChange: function(event,index,row) { 
       alert(" index"+index + "rows are" + row); 
      }, 
+0

您可以爲每個表格單元創建一個React組件。然後每個單元格都會知道它的行和列。然後您可以將其作爲屬性傳遞給每個單元格。這是最「反應」的方式,但我仍然不確定你想用這些信息做什麼。 – magnudae 2015-03-03 10:02:08

+0

請包含足夠數量的代碼,以便我們瞭解您遇到的問題。 – WiredPrairie 2015-03-03 11:33:23

+0

此外,當您在事件處理程序中使用'bind'時,不會將SyntheticEvent作爲第一個參數傳遞。它根本不包括在內。只有您指定的參數可用。 – WiredPrairie 2015-03-03 11:36:16

回答

4

Here's my solution。我使用了一個列表而不是數組來節省時間,但希望你應該幫助你解決你的問題。如果您有任何問題,請告訴我。

在你的例子中,你的參數命令是錯誤的。您的功能簽名應爲function(index, row, event);

參考MDN參考的Function.prototype.bind()

我也建議使用arguments object調試在瀏覽器的開發人員的參數勸慰下一次你不確定你的參數的順序。

+0

或者,可以使用'{event => this.handleChange(index,event)}'而不是'{this.handleChange.bind(this,idx)}'。 – Ruben9922 2017-08-15 21:34:32