如何解决错误:在 /products/[productId] 的 getStaticPaths 中未将必需参数 (productId) 作为字符串提供
我想展示 3 个来自 JSON 的产品。我正在尝试做一个 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 获取信息:错误:在 /products/[productId] 的 getStaticPaths 中未将必需参数 (productId) 作为字符串提供
解决方法
我只能根据错误描述假设:
const { id } = product;
return {
params: {
productId: id,},};
在 getStaticPaths
函数的这一部分中,您应该为 id
提供 productId
作为字符串(本身可能是一个数字)。
所以你想尝试把它改成这样:
const { id } = product;
return {
params: {
productId: id.toString(),};
如果这就是您要找的,请告诉我。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。