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

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

我們在一個(gè)對象上調(diào)用Array.map()方法,得到了錯(cuò)誤反饋。

為了解決該錯(cuò)誤,請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ù)組,則返回對其調(diào)用map方法的結(jié)果,否則返回null。這種方式不會(huì)得到錯(cuò)誤,即使值不是一個(gè)數(shù)組。

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

Array.from

如果有一個(gè)類數(shù)組對象,在調(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ù)組的對象,比如調(diào)用getElementsByClassName方法返回的NodeList

Object.keys

如果你嘗試迭代遍歷對象,使用Object.keys()方法獲取對象的鍵組成的數(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方法得到對象的鍵組成的數(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è)對象的鍵或者對象的值的數(shù)組。

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

相關(guān)文章

  • 詳解如何使用React和MUI創(chuàng)建多選Checkbox樹組件

    詳解如何使用React和MUI創(chuàng)建多選Checkbox樹組件

    這篇文章主要為大家詳細(xì)介紹了如何使用 React 和 MUI(Material-UI)庫來創(chuàng)建一個(gè)多選 Checkbox 樹組件,該組件可以用于展示樹形結(jié)構(gòu)的數(shù)據(jù),并允許用戶選擇多個(gè)節(jié)點(diǎn),感興趣的可以了解下
    2024-01-01
  • React18?中的?Suspense?API使用實(shí)例詳解

    React18?中的?Suspense?API使用實(shí)例詳解

    這篇文章主要為大家介紹了React18?中的?Suspense?API使用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • React中的路由嵌套和手動(dòng)實(shí)現(xiàn)路由跳轉(zhuǎn)的方式詳解

    React中的路由嵌套和手動(dòng)實(shí)現(xiàn)路由跳轉(zhuǎn)的方式詳解

    這篇文章主要介紹了React中的路由嵌套和手動(dòng)實(shí)現(xiàn)路由跳轉(zhuǎn)的方式,手動(dòng)路由的跳轉(zhuǎn),主要是通過Link或者NavLink進(jìn)行跳轉(zhuǎn)的,實(shí)際上我們也可以通JavaScript代碼進(jìn)行跳轉(zhuǎn),需要的朋友可以參考下
    2022-11-11
  • 在 React 中使用 Redux 解決的問題小結(jié)

    在 React 中使用 Redux 解決的問題小結(jié)

    在 React 中組件通信的數(shù)據(jù)流是單向的,頂層組件可以通過 props 屬性向下層組件傳遞數(shù)據(jù),而下層組件不能直接向上層組件傳遞數(shù)據(jù),這篇文章主要介紹了使用react+redux實(shí)現(xiàn)彈出框案例,需要的朋友可以參考下
    2022-10-10
  • React Native 腳手架的基本使用詳解

    React Native 腳手架的基本使用詳解

    這篇文章主要介紹了React Native 腳手架的基本使用詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 使用react在修改state中的數(shù)組和對象數(shù)據(jù)的時(shí)候(setState)

    使用react在修改state中的數(shù)組和對象數(shù)據(jù)的時(shí)候(setState)

    這篇文章主要介紹了使用react在修改state中的數(shù)組和對象數(shù)據(jù)的時(shí)候(setState),具有很好的參考價(jià)值,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • React報(bào)錯(cuò)Element type is invalid解決案例

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

    這篇文章主要為大家介紹了React報(bào)錯(cuò)Element type is invalid解決案例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • React的diff算法核心復(fù)用圖文詳解

    React的diff算法核心復(fù)用圖文詳解

    這篇文章主要為大家介紹了React的diff算法核心復(fù)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • create-react-app構(gòu)建項(xiàng)目慢的解決方法

    create-react-app構(gòu)建項(xiàng)目慢的解決方法

    這篇文章主要介紹了create-react-app構(gòu)建項(xiàng)目慢的解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • React生命周期與父子組件間通信知識(shí)點(diǎn)詳細(xì)講解

    React生命周期與父子組件間通信知識(shí)點(diǎn)詳細(xì)講解

    生命周期函數(shù)指在某一時(shí)刻組件會(huì)自動(dòng)調(diào)用并執(zhí)行的函數(shù)。React每個(gè)類組件都包含生命周期方法,以便于在運(yùn)行過程中特定的階段執(zhí)行這些方法
    2022-11-11

最新評論