91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

React報錯map()?is?not?a?function的原因是什么

發布時間:2022-08-03 16:23:38 來源:億速云 閱讀:900 作者:iii 欄目:開發技術

本篇內容主要講解“React報錯map() is not a function的原因是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“React報錯map() is not a function的原因是什么”吧!

總覽

當我們對一個不是數組的值調用map()方法時,就會產生"TypeError: map is not a function"錯誤。為了解決該錯誤,請將你調用map()方法的值記錄在console.log上,并確保只對有效的數組調用map

React報錯map()?is?not?a?function的原因是什么

這里有個示例來展示錯誤是如何發生的。

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

我們在一個對象上調用Array.map()方法,得到了錯誤反饋。

為了解決該錯誤,請console.log你調用map方法的值,確保它是一個有效的數組。

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

Array.isArray

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

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

如果值為數組,則返回對其調用map方法的結果,否則返回null。這種方式不會得到錯誤,即使值不是一個數組。

如果值是從遠程服務中獲取,請確保它是你期望的類型,將其記錄到控制臺,并確保你在調用map方法之前將其解析為一個原生JavaScript數組。

Array.from

如果有一個類數組對象,在調用map方法之前你嘗試轉換為數組,可以使用Array.from()方法。

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

在調用map方法之前,我們將值轉換為數組。這也適用于類數組的對象,比如調用getElementsByClassName方法返回的NodeList

Object.keys

如果你嘗試迭代遍歷對象,使用Object.keys()方法獲取對象的鍵組成的數組,在該數組上可以調用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}>
            <h3>
              {key}: {employee[key]}
            </h3>

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

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

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

我們使用Object.keys方法得到對象的鍵組成的數組。

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

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

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

我們只能在數組上調用map()方法,所以我們需要獲得一個對象的鍵或者對象的值的數組。

到此,相信大家對“React報錯map() is not a function的原因是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东源县| 新化县| 巴里| 易门县| 玉田县| 咸阳市| 金塔县| 耒阳市| 平武县| 远安县| 邢台县| 荔浦县| 肃宁县| 封丘县| 故城县| 鹿邑县| 桦甸市| 中牟县| 青神县| 丁青县| 洞头县| 胶州市| 班戈县| 武鸣县| 百色市| 临清市| 响水县| 阳朔县| 岳阳县| 磐石市| 澜沧| 大渡口区| 岗巴县| 巨野县| 航空| 华蓥市| 塔河县| 西乌| 谢通门县| 阿拉善右旗| 灯塔市|