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

React報(bào)錯(cuò)Element type is invalid解決案例

 更新時(shí)間:2022年12月19日 11:16:15   作者:chuck  
這篇文章主要為大家介紹了React報(bào)錯(cuò)Element type is invalid解決案例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

總覽

產(chǎn)生"Element type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got"錯(cuò)誤有多個(gè)原因:

  • 在導(dǎo)入組件時(shí),將默認(rèn)導(dǎo)入和命名導(dǎo)入混淆。
  • 忘記從文件中導(dǎo)出組件。
  • 不正確地定義了一個(gè)React組件,例如,作為一個(gè)變量而不是一個(gè)函數(shù)或類。

為了解決該錯(cuò)誤,確保使用大括號(hào)來導(dǎo)入命名導(dǎo)出而不是默認(rèn)導(dǎo)出,并且只使用函數(shù)或類作為組件。

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

// ??? must be function or class (NOT variable)
const Button = <button>Click</button>;
export default function App() {
  // ?? Warning: React.jsx: type is invalid -- expected a string
  // (for built-in components) or a class/function
  // (for composite components) but got:
  return (
    <div>
      <Button />
      <h1>hello world</h1>
    </div>
  );
}

上述代碼問題在于,我們聲明了Button變量,該變量返回了JSX代碼。

函數(shù)組件

為了解決該錯(cuò)誤,我們必須使用函數(shù)組件來代替。

// ??? is now function
const Button = () => {
  return <button>Click</button>;
};
export default function App() {
  return (
    <div>
      <Button />
      <h1>hello world</h1>
    </div>
  );
}

現(xiàn)在,Button是一個(gè)函數(shù),并返回JSX代碼??梢宰鳛橐粋€(gè)React組件使用。

混淆導(dǎo)入導(dǎo)出

另一個(gè)常見的錯(cuò)誤原因是混淆了默認(rèn)和命名的導(dǎo)入和導(dǎo)出。

當(dāng)組件使用默認(rèn)導(dǎo)出來導(dǎo)出時(shí),你必須確保導(dǎo)入的時(shí)候沒有使用大括號(hào)。

// Header.js
// ??? default export
export default function Header() {
  return <h2>Hello world</h2>;
}

現(xiàn)在,它必須不帶大括號(hào)導(dǎo)入。

// ??? default import
import Header from './Header';
export default function App() {
  return (
    <div>
      <Header />
    </div>
  );
}

另一方面,如果你的組件使用命名導(dǎo)出來導(dǎo)出的話,它必須使用大括號(hào)導(dǎo)入。

// Header.js
// ??? named export
export function Header() {
  return <h2>Hello world</h2>;
}

現(xiàn)在,當(dāng)組件被導(dǎo)入時(shí),它必須包裹在大括號(hào)內(nèi)。

// ??? named import
import {Header} from './Header';
export default function App() {
  return (
    <div>
      <Header />
    </div>
  );
}

確保你沒有將一個(gè)組件作為默認(rèn)導(dǎo)出,并試圖將其作為命名導(dǎo)入(用大括號(hào)包裹),或者反過來。因?yàn)檫@是導(dǎo)致錯(cuò)誤的一個(gè)常見原因。

如果錯(cuò)誤尚未解決,確保重啟你的開發(fā)服務(wù)以及IDE。

檢查路徑

你還應(yīng)該確保指向模塊的路徑拼寫正確,大小寫正確以及指定導(dǎo)出組件的文件。

確保路徑正確的最好方法是刪除它,開始輸入路徑,讓你的IDE用自動(dòng)補(bǔ)全來幫助你。

如果你開始輸入路徑后沒有得到自動(dòng)補(bǔ)全,很可能是你的路徑不正確。

使用ESM

確保你沒有混淆ES ModulesCommonJS語法。

你應(yīng)該在你的React.js應(yīng)用程序中只使用import/export語法,而不是module.exportsrequire()語法。

從react-router-dom導(dǎo)入

當(dāng)我們從react-router而不是react-router-dom導(dǎo)入東西時(shí),有時(shí)也會(huì)出現(xiàn)這個(gè)錯(cuò)誤。

// ?? BAD
// import {Link} from 'react-router';
// ? GOOD
import {Link} from 'react-router-dom';

如果你使用react router,請(qǐng)確保從react-router-dom導(dǎo)入,而不是從react-router中。

當(dāng)我們?cè)噲D使用不是函數(shù)或類的東西作為一個(gè)組件時(shí),會(huì)產(chǎn)生"Element type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got:"錯(cuò)誤信息。

錯(cuò)誤信息

你應(yīng)該看一下got:后面的錯(cuò)誤信息,因?yàn)樗赡鼙砻魇鞘裁丛驅(qū)е碌腻e(cuò)誤。

當(dāng)我們使用一個(gè)組件時(shí),我們必須確保它是一個(gè)函數(shù)或一個(gè)類。如果你使用任何其他的值作為一個(gè)組件,就會(huì)引起錯(cuò)誤。

以上就是React報(bào)錯(cuò)Element type is invalid解決案例的詳細(xì)內(nèi)容,更多關(guān)于React報(bào)錯(cuò)Element type invalid的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解操作虛擬dom模擬react視圖渲染

    詳解操作虛擬dom模擬react視圖渲染

    這篇文章主要介紹了詳解操作虛擬dom模擬react視圖渲染,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 詳解如何在Remix 中使用 tailwindcss

    詳解如何在Remix 中使用 tailwindcss

    這篇文章主要為大家介紹了如何在Remix中使用tailwindcss方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 記錄一次完整的react hooks實(shí)踐

    記錄一次完整的react hooks實(shí)踐

    這篇文章主要介紹了記錄一次完整的react hooks實(shí)踐,通過一個(gè)簡(jiǎn)單示例,介紹了react hooks,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • react的hooks的用法詳解

    react的hooks的用法詳解

    這篇文章主要介紹了react的hooks的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • React 組件轉(zhuǎn) Vue 組件的命令寫法

    React 組件轉(zhuǎn) Vue 組件的命令寫法

    本文先介紹兩個(gè)框架的組件共性和不兼容的地方,再介紹react-to-vue的使用和原理,需要的朋友可以參考下
    2018-02-02
  • 路由react-router-dom的基本使用教程

    路由react-router-dom的基本使用教程

    在React中,路由是一套映射規(guī)則,是URL路徑與組件的對(duì)應(yīng)關(guān)系。使用React路由,就是配置路徑和組件的對(duì)應(yīng)關(guān)系,這篇文章主要介紹了路由react-router-dom的使用,需要的朋友可以參考下
    2023-02-02
  • react項(xiàng)目中如何引入國(guó)際化

    react項(xiàng)目中如何引入國(guó)際化

    在React項(xiàng)目中引入國(guó)際化可以使用第三方庫(kù)來實(shí)現(xiàn),本文主要介紹了react項(xiàng)目中如何引入國(guó)際化,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • react.js框架Redux基礎(chǔ)案例詳解

    react.js框架Redux基礎(chǔ)案例詳解

    這篇文章主要介紹了react.js框架Redux基礎(chǔ)案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • React中DOM事件和狀態(tài)介紹

    React中DOM事件和狀態(tài)介紹

    這篇文章主要介紹了React中DOM事件和狀態(tài)介紹,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-08-08
  • React實(shí)現(xiàn)翻頁時(shí)鐘的代碼示例

    React實(shí)現(xiàn)翻頁時(shí)鐘的代碼示例

    本文給大家介紹了React實(shí)現(xiàn)翻頁時(shí)鐘的代碼示例,翻頁時(shí)鐘把數(shù)字分為上下兩部分,翻頁效果的實(shí)現(xiàn)需要通過設(shè)置 position 把所有的數(shù)組放在同一個(gè)位置疊加起來,文中有詳細(xì)的代碼講解,需要的朋友可以參考下
    2023-08-08

最新評(píng)論

丹凤县| 浦东新区| 莱阳市| 蚌埠市| 大荔县| 自治县| 合肥市| 东乌| 阜南县| 关岭| 泾阳县| 德阳市| 四平市| 宝应县| 兰溪市| 十堰市| 灌阳县| 虞城县| 法库县| 五寨县| 黑山县| 浪卡子县| 安塞县| 固始县| 三穗县| 灵寿县| 砀山县| 平山县| 嵩明县| 龙川县| 西贡区| 阿克陶县| 滕州市| 贵港市| 高雄市| 武平县| 岳池县| 吉木萨尔县| 怀来县| 莒南县| 白山市|