【发布时间】:2020-12-28 18:13:36
【问题描述】:
我正在尝试学习如何使用 axios 从 jsonplaceholder api 获取数据。我试图从 https://jsonplaceholder.typicode.com/v1/photos 获取图像并将其映射到一个 img 元素,但我收到“未捕获(承诺)类型错误:images.map 不是函数”错误。我该如何解决这个错误??
import axios from "axios";
import React, { useState, useEffect } from "react";
import "./styles.css";
export default function App() {
const [images, setImages] = useState([]);
const getData = async () => {
const { data: images } = await axios(
"https://jsonplaceholder.typicode.com/photos"
);
setImages({ images });
console.log(images);
};
useEffect(() => {
getData();
}, []);
return (
<div className="App">
Populate with imagse from jsonplaceholder
{images.map((image) => {
return <img src={image.thumbnailUrl} alt={image.title} />;
})}
</div>
);
}
给出的解决方案在 codeSandbox 中有效。 https://codesandbox.io/s/react-json-server-9g7wo?file=/src/VideoCard.js 但是在真正的应用程序中仍然给我“Unhandled Rejection (TypeError): Object(...) is not a function”错误
【问题讨论】:
-
尝试将 {images.map((image) => 更改为 {images && images.map((image) => ),因为这里发生的事情是在处理您的 axios 请求和图像数组之前当数组为空时,将调用 map 函数。
-
感谢您的重播。现在我收到“未处理的拒绝(TypeError):Object(...)不是函数”错误
-
你能告诉我你正在使用的 react 版本吗?
-
我使用的 react 版本是 17.0.1
标签: reactjs