react 事件處理

  • 普通語(yǔ)法中,阻止默認(rèn)行為可以通過(guò)返回false來(lái)進(jìn)行:
<a href="#" onclick="console.log('The link was clicked.'); return false">
     Click me
    </a>
  • react中必須顯示的使用preventDefault
function handleClick(e) {
   e.preventDefault();
   console.log('The link was clicked.');
   }
  • ????在react中,必須謹(jǐn)慎對(duì)待 JSX 回調(diào)函數(shù)中的 this,在 JavaScript 中,class 的方法默認(rèn)不會(huì)綁定this。如果你忘記綁定 this.handleClick 并把它傳入了 onClick,當(dāng)你調(diào)用這個(gè)函數(shù)的時(shí)候 this 的值為 undefined

    這和js函數(shù)工作原理有關(guān),

    解決方法:

    1. 使用 class fields 正確的綁定回調(diào)函數(shù):
 handleClick = () => {
    console.log('this is:', this);
 }

  1. 在回調(diào)中使用箭頭函數(shù):onClick={(e) => this.handleClick(e)}

  2. 在constructor中綁定 this.handleClick = this.handleClick.bind(this);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 回調(diào)函數(shù)中的 this,類的方法默認(rèn)是不會(huì)綁定 this 的。如果忘記綁定 this.handleClick 并把...
    mathfriend閱讀 214評(píng)論 0 1
  • react 的事件處理和DOM的事件處理其實(shí)是比較像的,但是因?yàn)閖sx更加偏向js,所以我們定義事件處理函數(shù)的時(shí)候...
    葉綠素yls閱讀 186評(píng)論 0 0
  • React 事件處理 React 元素的事件處理和 DOM 元素類似。但是有一點(diǎn)語(yǔ)法上的不同: React 事件綁...
    習(xí)慣芥末味閱讀 250評(píng)論 0 0
  • React 元素的事件處理和 DOM 元素類似。但是有一點(diǎn)語(yǔ)法上的不同:React 事件綁定屬性的命名采用駝峰式寫...
    mathfriend閱讀 171評(píng)論 0 1
  • 處理事件 react事件使用駝峰命名,而不是完全小寫。通過(guò)JSX我們可以傳遞一個(gè)函數(shù)作為事件處理程序。與DOM綁定...
    張延偉閱讀 1,614評(píng)論 0 0

友情鏈接更多精彩內(nèi)容