我在使用.map函数获取API时遇到问题
我总是得到错误(Apasih.js:23未捕获的类型错误:dataProduk.map不是函数)。
有人能帮我解决这个问题吗?
这是我代码
import React, { useEffect, useState } from 'react';
import Axios from 'axios';
import List_products from './List_products';
const Apasih = () => {
const [dataProduk, setDataProduk] = useState([]);
useEffect(() => {
Axios.get(')
.then((result) => {
console.log('data API', result.data);
const responseAPI = result.data;
setDataProduk(responseAPI.data);
})
.catch((err) => {
console.log('error: ', err);
});
}, []);
return (
<div>
{dataProduk.map((produk) => {
return <List_products key={produk.id} />;
})}
</div>
);
};
export default Apasih;
3条答案
按热度按时间esbemjvw1#
dataProduk是一个对象或未定义,您正在分配result.data.data。您确定这是正确的吗?
fv2wmkja2#
您首先需要验证响应是否为Array,例如,请求代码为200,这是可以的,但数据应为null,否则响应将更改useState的类型。
mutmk8jj3#
您需要检查它是否不为空并且它也是一个Array,即
在处理项目中的数组时,请始终使用此逻辑以防止出现后续错误或崩溃。