最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React Hook 'useEffect' is called in function報(bào)錯(cuò)解決

 更新時(shí)間:2022年12月02日 10:22:32   作者:Borislav Hadzhiev  
這篇文章主要為大家介紹了React Hook 'useEffect' is called in function報(bào)錯(cuò)解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

總覽

為了解決錯(cuò)誤"React Hook 'useEffect' is called in function that is neither a React function component nor a custom React Hook function",可以將函數(shù)名的第一個(gè)字母大寫,或者使用use作為函數(shù)名的前綴。比如說,useCounter使其成為一個(gè)組件或一個(gè)自定義鉤子。

這里有個(gè)示例用來展示錯(cuò)誤是如何發(fā)生的。

// App.js
import React, {useEffect, useState} from 'react';
// ??? Not a component (lowercase first letter)
// not a custom hook (doesn't start with use)
function counter() {
  const [count, setCount] = useState(0);
  // ?? React Hook "useEffect" is called in function "counter" that
  // is neither a React function component nor a custom React Hook function.
  // React component names must start with an uppercase letter.
  // React Hook names must start with the word "use".
  useEffect(() => {
    console.log(count);
  }, [count]);
  return (
    <div>
      <h2>Count: {count}</h2>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}

上述代碼片段的問題在于,我們在一個(gè)函數(shù)中使用了useEffect鉤子,而這個(gè)函數(shù)不是一個(gè)組件,因?yàn)樗孕懽帜搁_頭,也不是一個(gè)自定義鉤子,因?yàn)樗拿植皇且?code>use開頭。

聲明組件

如果你想聲明一個(gè)組件,請將你的函數(shù)的第一個(gè)字母大寫。

// App.js
import React, {useEffect, useState} from 'react';
// ??? is now a component (can use hooks)
function Counter() {
  const [count, setCount] = useState(0);
  useEffect(() => {
    console.log(count);
  }, [count]);
  return (
    <div>
      <h2>Count: {count}</h2>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}
export default function App() {
  return (
    <div>
      <Counter />
    </div>
  );
}

函數(shù)名必須以大寫字母開頭,因?yàn)檫@有助于React區(qū)分諸如p、div、span等內(nèi)置元素和我們定義的組件。

就像文檔中所說的:

  • 只從React函數(shù)組件或自定義鉤子中調(diào)用Hook
  • 只在最頂層使用 Hook
  • 不要在循環(huán),條件或嵌套函數(shù)中調(diào)用 Hook
  • 確??偸窃谀愕?React 函數(shù)的最頂層以及任何 return 之前使用 Hook

聲明自定義鉤子

如果你想聲明一個(gè)自定義鉤子,自定義鉤子的名稱必須以use開頭,比如說useCounter

import React, {useEffect, useState} from 'react';
// ??? is a custom hook (name starts with use)
function useCounter() {
  const [count, setCount] = useState(0);
  useEffect(() => {
    console.log(count);
  }, [count]);
  return [count, setCount];
}
export default function App() {
  const [count, setCount] = useCounter();
  return (
    <div>
      <h2>Count: {count}</h2>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}

自定義鉤子的名字必須以use開頭,這樣React才能識別你的函數(shù)是一個(gè)自定義鉤子。

總結(jié)

為了解決"React Hook 'useEffect' is called in function that is neither a React function component nor a custom React Hook function"的錯(cuò)誤,確保只從React函數(shù)組件或自定義鉤子中調(diào)用鉤子。

翻譯原文鏈接:bobbyhadz.com/blog/react-…

以上就是React Hook 'useEffect' is called in function報(bào)錯(cuò)解決的詳細(xì)內(nèi)容,更多關(guān)于React報(bào)錯(cuò)Hook useEffect function的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

    這篇文章主要為大家介紹了JS跨域解決方案react配置反向代理的示例內(nèi)容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • React實(shí)現(xiàn)錨點(diǎn)跳轉(zhuǎn)組件附帶吸頂效果的示例代碼

    React實(shí)現(xiàn)錨點(diǎn)跳轉(zhuǎn)組件附帶吸頂效果的示例代碼

    這篇文章主要為大家詳細(xì)介紹了React如何實(shí)現(xiàn)移動端錨點(diǎn)跳轉(zhuǎn)組件附帶吸頂效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01
  • React Native可復(fù)用 UI分離布局組件和狀態(tài)組件技巧

    React Native可復(fù)用 UI分離布局組件和狀態(tài)組件技巧

    這篇文章主要為大家介紹了React Native可復(fù)用 UI分離布局組件和狀態(tài)組件使用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • React?Hooks使用startTransition與useTransition教程示例

    React?Hooks使用startTransition與useTransition教程示例

    這篇文章主要為大家介紹了React?Hooks使用startTransition與useTransition教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • useReducer?createContext代替Redux原理示例解析

    useReducer?createContext代替Redux原理示例解析

    這篇文章主要為大家介紹了useReducer?createContext代替Redux原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 在?React?Native?中給第三方庫打補(bǔ)丁的過程解析

    在?React?Native?中給第三方庫打補(bǔ)丁的過程解析

    這篇文章主要介紹了在?React?Native?中給第三方庫打補(bǔ)丁的過程解析,有時(shí)使用了某個(gè)React Native 第三方庫,可是它有些問題,我們不得不修改它的源碼,本文介紹如何修改源碼又不會意外丟失修改結(jié)果的方法,需要的朋友可以參考下
    2022-08-08
  • React Native自定義路由管理的深入理解

    React Native自定義路由管理的深入理解

    路由管理的功能主要指的頁面跳轉(zhuǎn)、goBack、帶參數(shù)跳轉(zhuǎn)等功能,這篇文章主要給大家介紹了關(guān)于React Native自定義路由管理的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • react lazyLoad加載使用詳解

    react lazyLoad加載使用詳解

    lazy是React提供的懶(動態(tài))加載組件的方法,React.lazy(),路由組件代碼會被分開打包,能減少打包體積、延遲加載首屏不需要渲染的組件,依賴內(nèi)置組件Suspense標(biāo)簽的fallback屬性,給lazy加上loading指示器組件,Suspense目前只和lazy配合實(shí)現(xiàn)組件等待加載指示器的功能
    2023-03-03
  • react map使用方法實(shí)例詳解

    react map使用方法實(shí)例詳解

    map()方法是在React中常用的數(shù)組處理方法之一,可以用于遍歷數(shù)組、生成組件列表以及進(jìn)行數(shù)據(jù)轉(zhuǎn)換等操作,通過合理運(yùn)用map()方法,可以更靈活地處理和展示數(shù)據(jù),下面給大家講解react map使用方法,感興趣的朋友一起看看吧
    2023-10-10
  • ReactHook使用useState更新變量后,如何拿到變量更新后的值

    ReactHook使用useState更新變量后,如何拿到變量更新后的值

    這篇文章主要介紹了ReactHook使用useState更新變量后,如何拿到變量更新后的值問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評論

玉溪市| 大埔区| 长海县| 锡林郭勒盟| 米泉市| 通化县| 三原县| 安国市| 太康县| 衡东县| 江口县| 哈巴河县| 孟州市| 富顺县| 辽宁省| 巴马| 赣榆县| 孝感市| 永顺县| 赫章县| 丰顺县| 文昌市| 汉寿县| 江川县| 古田县| 武城县| 南丹县| 福鼎市| 高青县| 友谊县| 察哈| 雅江县| 甘孜| 潞城市| 中江县| 任丘市| 且末县| 册亨县| 扶风县| 陆丰市| 乐至县|