sách gpt4 ai đã đi

Không thể .map() một giá trị trông giống như một mảng

In lại 作者:行者123 更新时间:2023-12-01 00:35:24 28 4
mua khóa gpt4 Nike

当我控制台单独记录变量“pokemons”时,它确实返回一个数组。但是当我尝试映射它时,出现错误: TypeError: pokemons.map is not a function

我的代码:

import React, { useState, useEffect } from "react";
import "./App.css";
import PokeList from "./components/PokeList";
import Paginator from "./components/Paginator";
import axios from "axios";

function App() {
let [pokemons, setPokemons] = useState([]);
let [status, setStatus] = useState(false);

useEffect(
() =>
setPokemons(
axios.get("https://pokeapi.co/api/v2/pokemon").then((res) => {
setPokemons(res.data.results.map((poki) => poki.name));
})
),
[]
);
trở lại (



);
}

export default App;

并且 map 在 PokeList 组件中被调用:

import React from "react";

const PokeList = ({ pokemons }) => {
console.log(pokemons.map((poki) => "Yellow"));
trở lại (

Here are all your pokis:



);
};

export default PokeList;

1 Câu trả lời

Của bạn bản đồ() 失败的原因是 axios 返回了前几次调用的 promise 。所以你的子组件试图映射一个 promise ,它当然无法做到。解决此问题的另一种方法是检查数组的长度,并且仅在有长度时才进行映射。

    if(pokemons.length){
pokemons.map((poke) => {
console.log(poke)
})
}

这是一个显示其工作原理的链接:https://codesandbox.io/s/tempsandbox-okypp

关于javascript - 不能 .map() 一个看似数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58172857/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com