文章詳情頁
javascript - React中組件綁定this
瀏覽:111日期:2023-05-05 18:28:44
問題描述
<button onClick={this.handleEvent}> //這里的this是toggle組件 為什么還需要在組件里綁定這個函數的this {this.state.isToggleOn === true ? ’on’ : ’off’}</button>
想不明白這里的this綁定
問題解答
回答1:因為在class中聲明函數,并不會自動綁定this對象
所以,你在onClick={this.handleEvent}的時候,分解成兩步你就懂了:
let handleEvent = this.handleEvent;...onClick={handleEvent}...
所以,onClick調用的時候,handleEvent中的this會是undefined(根據文檔)
所以,你需要bind一下, 那么里面的this就是當前組件啦。
還有一種方便的寫法,就是用箭頭函數聲明:
handleEvent = (e)=>{}render(){ ...onClick={this.handleEvent}...}回答2:
因為handleEvent中this.setState...的this并沒有綁定this
可以采用箭頭函數的語法糖來綁定this
handleEvent = () => { this.setState...}
標簽:
JavaScript
相關文章:
1. mysql - 如何在有自增id的情況下,讓其他某些字段能不重復插入2. Python2中code.co_kwonlyargcount的等效寫法3. mysql - 請問數據庫字段為年月日,傳進的參數為月,怎么查詢那個月所對應的數據4. 求救一下,用新版的phpstudy,數據庫過段時間會消失是什么情況?5. javascript - vue+iview upload傳參失敗 跨域問題后臺已經解決 仍然報403,這是怎么回事啊?6. html - 移動端radio無法選中7. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?8. [python2]local variable referenced before assignment問題9. php - 微信開發驗證服務器有效性10. node.js - win 下 npm install 遇到了如下錯誤 會導致 無法 run dev么?
排行榜
