如何在ES6 類別中使用箭頭函數作為類別方法
最初將ES6 類別合併到React 中時,通常的做法是綁定實例明確的方法(如下面的範例所示)。然而,出現了一個關鍵問題:ES6 是否可以使用箭頭函數將類別函數永久綁定到類別實例,從而簡化它們作為回調的使用?
class SomeClass extends React.Component { // Bound method constructor() { this.handleInputChange = this.handleInputChange.bind(this); } }
CoffeeScript 提供了此功能,但目前還不清楚是否可以在 ES6 中可以實現類似的功能。
class SomeClass extends React.Component { // Attempted arrow function binding handleInputChange(val) => { console.log('selectionMade: ', val); } }
這個問題旨在了解箭頭函數是否可以永久綁定到ES6 中的類別實例,從而允許它們毫不費力地用作回調函數,確保傳遞給setTimeout 等函數時正確的上下文。
解決方案:修正語法
使用定義類別方法的原始嘗試箭頭函數包含一個小語法錯誤。正確的語法如下:
class SomeClass extends React.Component { handleInputChange = (val) => { console.log('selectionMade: ', val); } }
需要注意的是,此語法需要啟動 Babel 中的實驗功能才能成功編譯。安裝必要的外掛程式(transform-class-properties),您可以啟用這些實驗性功能。
此外,您可以在官方提案文件中找到有關類別欄位和靜態屬性的全面討論。
以上是ES6箭頭函數可以永久綁定React中的類別方法嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!