欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決React報錯Expected?`onClick`?listener?to?be?a?function

 更新時間:2022年12月02日 11:28:49   作者:Borislav?Hadzhiev  
這篇文章主要為大家介紹了React報錯Expected?`onClick`?listener?to?be?a?function解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

總覽

當(dāng)我們?yōu)樵氐?code>onClick屬性傳遞一個值,但是該值卻不是函數(shù)時,會產(chǎn)生"Expected onClick listener to be a function"報錯。為了解決該報錯,請確保只為元素的onClick屬性傳遞函數(shù)。

這里有個例子來展示錯誤是如何發(fā)生的。

// App.js
const App = () => {
  // ?? Warning: Expected `onClick` listener to be a function
  // instead got a value of `string` type.
  return (
    <div>
      <button onClick="console.log('Click')">Click</button>
    </div>
  );
};
export default App;

當(dāng)按鈕的onClick屬性的期望值是函數(shù)時,我們?yōu)槠鋫鬟f了一個字符串,從而導(dǎo)致了錯誤的產(chǎn)生。

傳遞函數(shù)

為了解決該報錯,請確保只為元素的onClick屬性傳遞函數(shù)。

// App.js
const App = () => {
  const handleClick = () => {
    console.log('button clicked');
  };
  return (
    <div>
      <button onClick={handleClick}>Click</button>
    </div>
  );
};
export default App;

我們向元素的onClick屬性傳遞了一個函數(shù),順利的解決了這個錯誤。然而,注意到我們在向onClick屬性傳遞函數(shù)時并沒有調(diào)用該函數(shù)。

我們傳遞了函數(shù)的引用,而不是函數(shù)調(diào)用的結(jié)果。

如果傳遞了函數(shù)調(diào)用的結(jié)果,那么事件處理器將在頁面加載時立即被調(diào)用,這不是我們想要的。

傳遞參數(shù)

你通常需要做的事情是向事件處理器傳遞一個參數(shù)。你可以通過使用一個內(nèi)聯(lián)箭頭函數(shù)來做到這一點。

// App.js
import {useState} from 'react';
const App = () => {
  const [count, setCount] = useState(0);
  const handleClick = (event, num) => {
    console.log(event.target);
    console.log('button clicked');
    setCount(count + num);
  };
  return (
    <div>
      <h2>{count}</h2>
      <button onClick={event => handleClick(event, 100)}>Click</button>
    </div>
  );
};
export default App;

handleClick函數(shù)是用event對象和一個數(shù)字參數(shù)調(diào)用的。需要注意的是,我們沒有向onClick屬性傳遞調(diào)用handleClick函數(shù)的結(jié)果。

我們實際上是將一個函數(shù)傳遞給它,該函數(shù)以event對象為參數(shù),并返回以event和數(shù)字100為參數(shù)的handleClick函數(shù)的調(diào)用結(jié)果。

不要把調(diào)用handleClick函數(shù)的結(jié)果傳遞給onClick屬性,這是非常重要的。因為如若這樣的話,當(dāng)頁面加載時,該函數(shù)會被立即調(diào)用,這可能會導(dǎo)致無限的重新渲染循環(huán)。

以上就是解決React報錯Expected `onClick` listener to be a function的詳細(xì)內(nèi)容,更多關(guān)于React報錯onClick function的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • react-native動態(tài)切換tab組件的方法

    react-native動態(tài)切換tab組件的方法

    在APP中免不了要使用tab組件,有的是tab切換,也有的是tab分類切換.這篇文章主要介紹了react-native動態(tài)切換tab組件的方法,非常具有實用價值,需要的朋友可以參考下
    2018-07-07
  • React中常用的Hook有哪些

    React中常用的Hook有哪些

    這篇文章主要介紹了react hooks實現(xiàn)原理,文中給大家介紹了useState dispatch 函數(shù)如何與其使用的 Function Component 進行綁定,節(jié)后實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • react antd實現(xiàn)動態(tài)增減表單

    react antd實現(xiàn)動態(tài)增減表單

    antd是react流行的ui框架庫,本文主要介紹了react antd實現(xiàn)動態(tài)增減表單,分享給大家,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 詳解React中多種組件通信方式的實現(xiàn)

    詳解React中多種組件通信方式的實現(xiàn)

    在React中,組件之間的通信是一個非常重要的話題,React提供了幾種方式來實現(xiàn)跨組件通信,下面小編將詳細(xì)講講其中幾種通信方式,并提供實際的代碼示例,需要的可以參考下
    2023-11-11
  • 詳解Immutable及 React 中實踐

    詳解Immutable及 React 中實踐

    Immutable 可以給 React 應(yīng)用帶來數(shù)十倍的提升,也有人說 Immutable 的引入是近期 JavaScript 中偉大的發(fā)明,因為同期 React 太火,它的光芒被掩蓋了。這篇文章主要介紹了Immutable及 React 中的實踐,需要的朋友可以參考下
    2018-03-03
  • React Native提供自動完成的下拉菜單的方法示例

    React Native提供自動完成的下拉菜單的方法示例

    這篇文章主要為大家介紹了React Native提供自動完成的下拉菜單的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • JS跨域解決方案react配置反向代理

    JS跨域解決方案react配置反向代理

    這篇文章主要為大家介紹了JS跨域解決方案react配置反向代理的示例內(nèi)容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • react配置px轉(zhuǎn)換rem的方法

    react配置px轉(zhuǎn)換rem的方法

    這篇文章主要介紹了react配置px轉(zhuǎn)換rem的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • React框架核心原理全面深入解析

    React框架核心原理全面深入解析

    React是前端開發(fā)每天都用的前端框架,自然要深入掌握它的原理。我用 React 也挺久了,這篇文章就來總結(jié)一下我對 react 原理的理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-11-11
  • 在React項目中實現(xiàn)一個簡單的錨點目錄定位

    在React項目中實現(xiàn)一個簡單的錨點目錄定位

    錨點目錄定位功能在長頁面和文檔類網(wǎng)站中非常常見,它可以讓用戶快速定位到頁面中的某個章節(jié),本文講給大家介紹一下React項目中如何實現(xiàn)一個簡單的錨點目錄定位,文中有詳細(xì)的實現(xiàn)代碼,需要的朋友可以參考下
    2023-09-09

最新評論