微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误:在 /products/[productId] 的 getStaticPaths 中未将必需参数 (productId) 作为字符串提供

如何解决错误:在 /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 举报,一经查实,本站将立刻删除。