文章詳情頁
javascript - React中組件綁定this
瀏覽:139日期: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怎么修改多行多列的數據?求指點2. 這是什么情況???3. 編輯管理員信息時,為什么沒有修改過的內容會為空?4. phpadmin的數據庫,可以設置自動變化時間的變量嗎?就是不需要接收時間數據,自動變化5. mysql - thinkphp5 在MAC電腦本地正常,部署LINUX服務器之后,模型不存在6. 老哥們求助啊7. mysql服務無法啟動1067錯誤,誰知道正確的解決方法?8. PHP類封裝的插入數據,總是插入不成功,返回false;9. APP上傳到電腦服務器,出現數據上傳不完整的問題10. 求救一下,用新版的phpstudy,數據庫過段時間會消失是什么情況?
排行榜
