我想从JSON中显示3个产品。我正在尝试做一个NextJS web应用程序。我只是在学习,当我复制教程时一切都是正确的,但我在做我自己的改变,并试图创造一些不同的东西,但它不起作用。
谢谢大家!
[
{
"id": "price_1JDUeIIpi9NgmDuQlNYIwAlP",
"title": "HarryPotter1",
"category": "Cuento",
"image": "/images/harrypotter1.jpeg",
"price": 20
},
{
"id": "price_1JDUe4Ipi9NgmDuQh9nA4B9E",
"title": "Harry Potter2",
"category": "Novela",
"image": "/images/harrypotter2.jpeg",
"price": 10
},
{
"id": "price_1JDUdqIpi9NgmDuQGOQO9HGj",
"title": "Harry Potter3",
"category": "Ensayo",
"image": "/images/harrypotter3.jpeg",
"price": 25
}
]
]
在不同的路由中使用Link。这是我的[productId].js文件的最后一部分:
export async function getStaticProps({ params = {} }) {
const product = products.find(({ id }) => `${id}` === `${params.productId}`);
return {
props: {
product
},
};
}
export async function getStaticPaths() {
const paths = products.map((product) => {
const { id } = product;
return {
params: {
productId: id,
},
};
});
return {
paths,
fallback: false
};
}
我从Chrome获得:错误:所需参数(productId)未作为getStaticPaths中的字符串提供/products/[productId]
根据错误描述,我只能假设:
const { id } = product;
return {
params: {
productId: id,
},
};
在getStaticPaths
函数的这一部分中,您应该将productId
的id
作为字符串(可能是一个单独的数字)提供。所以你可以试着把它改成这样:
const { id } = product;
return {
params: {
productId: id.toString(),
},
};
如果这是你要找的,请告诉我。