日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

react中為什么用箭頭函數來定義事件處理函數

作者:我年薪百萬 更新時間: 2023-10-09 編程語言

文章目錄


在React中,通常會使用箭頭函數來定義事件處理函數,特別是當需要向事件處理函數傳遞參數時。在你提供的代碼中,為什么使用箭頭函數的主要原因是為了將參數 tab.type 傳遞給 this.switchTab 方法。讓我解釋一下為什么要這樣做:

舉例:
這里在點擊li的時候我的寫法是這樣的(錯誤寫法)

 <ul className="sort-container">
              {this.state.tabs.map((tab) => (
                <li
                  onClick={ this.switchTab}
                  key={tab.id}
                  className={tab.type === this.state.active ? 'on' : ''}>{tab.name}排序
                </li>
              ))}
            </ul>

如果像這樣處理函數,那么問題是,事件處理函數在渲染時立即執行,而不是在點擊事件發生時執行。這意味著 this.switchTab 會在渲染期間立即執行,并且無法傳遞事件對象 e,因為它只在點擊時才會創建。
為了解決這個問題,可以使用箭頭函數,它會在點擊事件發生時才執行,因此可以傳遞正確的參數和事件對象。
正確寫法(使用箭頭函數)

 <ul className="sort-container">
              {this.state.tabs.map((tab) => (
                <li
                  onClick={() => this.switchTab(tab.type)}
                  key={tab.id}
                  className={tab.type === this.state.active ? 'on' : ''}>{tab.name}排序
                </li>
              ))}
            </ul>

這里的箭頭函數在點擊事件發生時會調用 this.switchTab(tab.type),并且它可以正常傳遞事件對象 e(如果需要的話,你可以在函數內部訪問事件對象 e)。這種方式確保了事件處理函數在需要時才執行,而不是在渲染時執行。

原文鏈接:https://blog.csdn.net/qq_60893085/article/details/132846693

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新