我试图调用简单的apiCall在react js,但这是给错误如下:-
data.map is not a function
SandBox Url:-
验证码:
import "./styles.css";
import React, { useEffect, useState } from "react";
export default function App() {
const [data, setData] = useState();
const apiCall = () => {
fetch("https://fakestoreapi.com/products/1")
.then((res) => res.json())
.then((json) => {
setData(json);
console.log(data);
});
};
useEffect(() => {
apiCall();
}, []);
return (
<div className="App">
{data
? data.map((val) => (
<div>
<h2>{val.id}</h2>
</div>
))
: ""}
</div>
);
}
谢谢你的努力!
3条答案
按热度按时间dsf9zpds1#
因为从API返回的数据是
Object
,并且对象没有map
方法,所以可以使用Object.entries
、Object.values
、Object.keys
来迭代对象。9lowa7mx2#
从
https://fakestoreapi.com/products/1
获取的数据是对象,而不是数组。不能仅对对象应用map
方法。请阅读有关Maphere的信息gmxoilav3#
我编辑你的代码:出现此错误是因为数据是
object
而不是数组