Javascript nextjs:序列化从“中的getStaticProps”返回的“.product”时出错/打印/[姓名]”字样;

Javascript nextjs:序列化从“中的getStaticProps”返回的“.product”时出错/打印/[姓名]”字样;,javascript,reactjs,next.js,strapi,encodeuricomponent,Javascript,Reactjs,Next.js,Strapi,Encodeuricomponent,我有一个Strapi nextjs应用程序,有两类产品。 在本地上一切都很好,但我在尝试构建时出现以下错误: 序列化从中的getStaticProps返回的.product时出错 “/prints/[name]”。原因:未定义无法序列化为JSON。 请同时使用null或忽略此值 我不明白的是,它只涉及一类产品,而代码是相同的。 我知道这不是最好的配置,但我不能用另一种方式 index.js(图书) 如果你也有一些建议,避免重复几乎相同的代码两次,我很感兴趣。原因是这两个类别具有不同的json设计

我有一个Strapi nextjs应用程序,有两类产品。 在本地上一切都很好,但我在尝试构建时出现以下错误:

序列化从中的
getStaticProps
返回的
.product
时出错 “/prints/[name]”。原因:
未定义
无法序列化为JSON。 请同时使用
null
或忽略此值

我不明白的是,它只涉及一类产品,而代码是相同的。 我知道这不是最好的配置,但我不能用另一种方式

index.js(图书)


如果你也有一些建议,避免重复几乎相同的代码两次,我很感兴趣。原因是这两个类别具有不同的json设计

是否
等待getProducts()
返回对象数组<代码>道具只需要对象。因此,在将代码传递给props之前,您可能需要对其进行一些重构。

您没有为getProducts()提供代码。 我用axios试过,比如:

let { data } = await axios.get(url)
基本上,您需要rest调用中的“data”属性。
或者,您可以尝试使用console.log(getProducts())来查看json的结构。

在我的例子中,我必须正确解析响应,它工作正常。分享您的
getProductPrints()
代码会很有帮助,这样我们就可以了解其响应的性质。但与此同时,请尝试以下方法:

export async function getStaticProps() {
  const res = await getProductPrints();
  const products = await res.json()
  return { props: { products } };
}

是的,一组对象。但我不明白的是,为什么它可以很好地处理书籍,而不能处理印刷品,尽管它几乎是一样的
 export default ProductPage;

export async function getStaticProps({ params }) {
  const product = await getProductPrints(params.name);
  return { props: { product } };
}

// This function gets called at build time
export async function getStaticPaths() {
  // Call an external API endpoint to get products
  const products = await getProductsPrints();
  // Get the paths we want to pre-render based on posts
  const paths = products.map(
    (product) => `/prints/${product.Name}`
  );
  // We'll pre-render only these paths at build time.
  // { fallback: false } means other routes should 404.
  return { paths, fallback: false };
}
let { data } = await axios.get(url)
export async function getStaticProps() {
  const res = await getProductPrints();
  const products = await res.json()
  return { props: { products } };
}