【发布时间】:2023-01-20 19:23:59
【问题描述】:
嗨,有人能告诉我为什么我得到 list.map is not a function 错误吗?
下面是我的代码
单一产品
import axiosLink from "../instance/axiosLink";
const SingleProduct = () => {
const { _id } = useParams();
const [product, setProduct] = useState({});
useEffect(() => {
axiosLink
.get(`/api/products${_id}`)
.then(({ data }) => {
setProduct(data);
})
.catch((error) => console.log(error));
});
return (
<div>
<SingleProductComponent list={product} />
{/* <RelatedProducts list={product} /> */}
<Review />
</div>
);
};
export default SingleProduct;
单一产品组件
import React from "react";
const SingleProductComponent = ({ list }) => {
return (
<div>
{list &&
list.map((item, index) => {
return (
<div key={index}>
<div className="SingleProduct">
.........
</div>
</div>
</div>
);
})}
</div>
);
};
export default SingleProductComponent;
axios链接
import axios from "axios";
const axiosLink = axios.create({
baseURL: "http://localhost:8000/",
responseType: "json",
});
export default axiosLink;
你能告诉我为什么吗?我经常收到此错误,但我还不知道修复方法
这是我的 api 结构
【问题讨论】:
-
product不是数组 -
您正在将
product初始化为一个对象,然后执行list.map。也许您的 XHR 正在返回一个数组,但对于第一次加载,产品是一个对象。所以你需要确保你的默认值是正确的
标签: reactjs