我试图在json文件中循环产品,我一直得到这个错误TypeError: products。map不是函数
这是我的代码
import React from "react"; import Link from "next/link";
function shop({ products }) { return (
<div>
<nav>
<Link href="/">Home</Link>
<Link href="/shop">Shop</Link>
</nav>
<div className="title1">
<h1>Explore All Products</h1>
</div>
<>
{products.map((product) => { return (
<div key={product.id}>
<Link href="">
<h2>
{product.id} {product.title}
</h2>
</Link>
</div>
);
})}
</>
</div> ); }
export default shop;
export async function getStaticProps() { const response = await fetch("https://dummyjson.com/products"); const data = await response.json(); console.log(data);
return { props: { products: data,
}, }; }
我尝试了很多其他人的方法来解决堆栈溢出问题,但是没有任何效果
> import React from "react"; import Link from "next/link";
>
> function shop({ products }) { return (
> <div>
> <nav>
> <Link href="/">Home</Link>
> <Link href="/shop">Shop</Link>
> </nav>
> <div className="title1">
> <h1>Explore All Products</h1>
> </div>
> <>
> {products.map((product) => {
> return (
> <div key={product.id}>
> <Link href="">
> <h2>
> {product.id} {product.title}
> </h2>
> </Link>
> </div>
> );
> })}
> </>
> </div> ); }
>
> export default shop;
>
> export async function getStaticProps() { const response = await
> fetch("https://dummyjson.com/products"); if (response.status !==
> 200){
> console.log(`Error: ${response.status}`); } const data = await response.json();
>
>
> return {
> props: {
> products: data.products, //instead of just "data"
> }, }; }
端点https://dummyjson.com/products
返回如下对象:
{
"products": [...],
"total": 100,
"skip": 0,
"limit": 30
}
您想要的数据在products
属性中,因此您只需使用:
return { props: { products: data.products } };