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

React報(bào)錯(cuò)map()?is?not?a?function詳析

 更新時(shí)間:2022年08月03日 09:39:55   作者:???????chuck  
這篇文章主要介紹了React報(bào)錯(cuò)map()?is?not?a?function詳析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

總覽

當(dāng)我們對(duì)一個(gè)不是數(shù)組的值調(diào)用map()方法時(shí),就會(huì)產(chǎn)生"TypeError: map is not a function"錯(cuò)誤。為了解決該錯(cuò)誤,請(qǐng)將你調(diào)用map()方法的值記錄在console.log上,并確保只對(duì)有效的數(shù)組調(diào)用map。

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

const App = () => {
  const obj = {};
  // ?? Uncaught TypeError: map is not a function
  return (
    <div>
      {obj.map(element => {
        return <h2>{element}</h2>;
      })}
    </div>
  );
};
export default App;

我們?cè)谝粋€(gè)對(duì)象上調(diào)用Array.map()方法,得到了錯(cuò)誤反饋。

為了解決該錯(cuò)誤,請(qǐng)console.log你調(diào)用map方法的值,確保它是一個(gè)有效的數(shù)組。

export default function App() {
  const arr = ['one', 'two', 'three'];
  return (
    <div>
      {arr.map((element, index) => {
        return (
          <div key={index}>
            <h2>{element}</h2>
          </div>
        );
      })}
    </div>
  );
}

Array.isArray

你可以通過使用Array.isArray方法,來有條件地檢查值是否為數(shù)組。

const App = () => {
  const obj = {};
  return (
    <div>
      {Array.isArray(obj)
        ? obj.map(element => {
            return <h2>{element}</h2>;
          })
        : null}
    </div>
  );
};
export default App;

如果值為數(shù)組,則返回對(duì)其調(diào)用map方法的結(jié)果,否則返回null。這種方式不會(huì)得到錯(cuò)誤,即使值不是一個(gè)數(shù)組。

如果值是從遠(yuǎn)程服務(wù)中獲取,請(qǐng)確保它是你期望的類型,將其記錄到控制臺(tái),并確保你在調(diào)用map方法之前將其解析為一個(gè)原生JavaScript數(shù)組。

Array.from

如果有一個(gè)類數(shù)組對(duì)象,在調(diào)用map方法之前你嘗試轉(zhuǎn)換為數(shù)組,可以使用Array.from()方法。

const App = () => {
const set = new Set(['one', 'two', 'three']);
return (
  <div>
    {Array.from(set).map(element => {
      return (
        <div key={element}>
          <h2>{element}</h2>
        </div>
      );
    })}
  </div>
);
};
export default App;

在調(diào)用map方法之前,我們將值轉(zhuǎn)換為數(shù)組。這也適用于類數(shù)組的對(duì)象,比如調(diào)用getElementsByClassName方法返回的NodeList。

Object.keys

如果你嘗試迭代遍歷對(duì)象,使用Object.keys()方法獲取對(duì)象的鍵組成的數(shù)組,在該數(shù)組上可以調(diào)用map()方法。

export default function App() {
  const employee = {
    id: 1,
    name: 'Alice',
    salary: 100,
  };
  return (
    <div>
      {/* ??? iterate object KEYS */}
      {Object.keys(employee).map((key) => {
        return (
          <div key={key}>
            <h2>
              {key}: {employee[key]}
            </h2>

            <hr />
          </div>
        );
      })}
      <br />
      <br />
      <br />

      {/* ??? iterate object VALUES */}
      {Object.values(employee).map((value, index) => {
        return (
          <div key={index}>
            <h2>{value}</h2>

            <hr />
          </div>
        );
      })}
    </div>
  );
}

我們使用Object.keys方法得到對(duì)象的鍵組成的數(shù)組。

const employee = {
  id: 1,
  name: 'Alice',
  salary: 100,
};

// ??? ['id', 'name', 'salary']
console.log(Object.keys(employee));

// ??? [1, 'Alice', 100]
console.log(Object.values(employee));

我們只能在數(shù)組上調(diào)用map()方法,所以我們需要獲得一個(gè)對(duì)象的鍵或者對(duì)象的值的數(shù)組。

到此這篇關(guān)于React報(bào)錯(cuò)map() is not a function詳析的文章就介紹到這了,更多相關(guān)React map is not a function內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文詳解React中如何實(shí)現(xiàn)組件懶加載

    一文詳解React中如何實(shí)現(xiàn)組件懶加載

    懶加載是一種優(yōu)化技術(shù),旨在延遲加載不必要的資源,直到它們真正需要時(shí)再進(jìn)行加載,那么React的懶加載是如何實(shí)現(xiàn)的呢,下面小編就來和大家詳細(xì)講講吧
    2025-03-03
  • React中實(shí)現(xiàn)父組件調(diào)用子組件的三種方法

    React中實(shí)現(xiàn)父組件調(diào)用子組件的三種方法

    在React中,組件之間的通信是一個(gè)常見的需求,有時(shí),我們需要從父組件調(diào)用子組件的方法,這可以通過幾種不同的方式實(shí)現(xiàn),需要的朋友可以參考下
    2024-04-04
  • 基于visual studio code + react 開發(fā)環(huán)境搭建過程

    基于visual studio code + react 開發(fā)環(huán)境搭建過程

    今天通過本文給大家分享基于visual studio code + react 開發(fā)環(huán)境搭建過程,本文給大家介紹的非常詳細(xì),包括react安裝問題及安裝 Debugger for Chrome的方法,需要的朋友跟隨小編一起看看吧
    2021-07-07
  • 一文詳解React中如何處理高階組件中的錯(cuò)誤

    一文詳解React中如何處理高階組件中的錯(cuò)誤

    在?React?高階組件中處理錯(cuò)誤是確保應(yīng)用程序健壯性和穩(wěn)定性的重要環(huán)節(jié),本文為大家整理了一些處理高階組件中錯(cuò)誤的常見方法,需要的小伙伴可以參考下
    2025-02-02
  • 詳解在React.js中使用PureComponent的重要性和使用方式

    詳解在React.js中使用PureComponent的重要性和使用方式

    這篇文章主要介紹了詳解在React.js中使用PureComponent的重要性和使用方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • React組件通信實(shí)現(xiàn)方式詳解

    React組件通信實(shí)現(xiàn)方式詳解

    這篇文章主要介紹了React組件通信,在開發(fā)中組件通信是React中的一個(gè)重要的知識(shí)點(diǎn),本文通過實(shí)例代碼給大家講解react中常用的父子、跨組件通信的方法,需要的朋友可以參考下
    2023-03-03
  • React中使用ResizeObserver來觀察元素size變化的方法

    React中使用ResizeObserver來觀察元素size變化的方法

    在 React 中使用 ResizeObserver 來觀察元素的大小變化,可以通過創(chuàng)建一個(gè)自定義 Hook 來封裝 ResizeObserver 的邏輯,并在組件中使用這個(gè) Hook,以下是一個(gè)完整的示例,展示了如何在 React 中使用 ResizeObserver 來觀察元素的大小變化,需要的朋友可以參考下
    2024-12-12
  • React Router中Link和NavLink的學(xué)習(xí)心得總結(jié)

    React Router中Link和NavLink的學(xué)習(xí)心得總結(jié)

    這篇文章主要介紹了React Router中Link和NavLink的學(xué)習(xí)心得總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • React Electron生成桌面應(yīng)用過程

    React Electron生成桌面應(yīng)用過程

    這篇文章主要介紹了React+Electron快速創(chuàng)建并打包成桌面應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-12-12
  • 關(guān)于React中使用window.print()出現(xiàn)頁面無響應(yīng)問題解決記錄

    關(guān)于React中使用window.print()出現(xiàn)頁面無響應(yīng)問題解決記錄

    這篇文章主要介紹了React中使用window.print()出現(xiàn)頁面無響應(yīng)問題解決記錄,首先問題原因可能是操作了document但是并未進(jìn)行銷毀(可能是),具體問題解決思路參考下本文吧
    2021-11-11

最新評(píng)論

浏阳市| 响水县| 胶南市| 东源县| 通河县| 玉屏| 北宁市| 莲花县| 塘沽区| 榕江县| 武安市| 枣阳市| 泰来县| 华容县| 宝鸡市| 永丰县| 大兴区| 全椒县| 渝中区| 湖口县| 隆化县| 荣成市| 比如县| 双辽市| 恩施市| 巴青县| 翁源县| 高邑县| 宽甸| 电白县| 连城县| 社会| 龙江县| 长岛县| 阳曲县| 永德县| 阿巴嘎旗| 白城市| 毕节市| 麻阳| 清远市|