reactjs 我的电子商务Web应用程序出现问题

7tofc5zh  于 2023-04-05  发布在  React
关注(0)|答案(2)|浏览(82)

有人能帮我解决这个错误吗?我遵循了一个电子商务示例应用程序,但最后,当我点击“立即购买”时遇到了一个错误。这是我收到的消息:服务器错误类型错误:无法解构“product”的属性“image”,因为它为null。
生成页面时发生此错误。所有控制台日志将显示在终端窗口中。Source pages\product[slug].js(19:10)@ image

const { image, name, details, price } = product;
     |        ^
  20 | const [index, setIndex] = useState(0);
  21 | const { decQty, incQty, qty, onAdd, setShowCart } = useStateContext();
  22 | const handleBuyNow = () => {
export const getStaticPaths = async () => {
  const query = `*[_type == "product"]{
slug{
                    current
}
}`;

  const products = await client.fetch(query);
  const paths = products.map((product) => ({
    params: {
      slug: product.slug.current,
    },
  }));
  return {
    paths,
    fallback: "blocking",
  };
};
export const getStaticProps = async ({ params: { slug } }) => {
  const query = `*[_type == "product" && slug.current == '${slug}'][0]`;
  const productsQuery = '*[_type == "product"]';

  const product = await client.fetch(query);
  const products = await client.fetch(productsQuery);

  return {
    props: { products, product },
  };
};
export default ProductDetails;

谢谢你
当您点击“现在购物”时,它应该直接打开购物车。

vq8itlhq

vq8itlhq1#

而不是像这样破坏你的财产

const { image, name, details, price } = product;

你应该像这样访问它们

product?.image

这将帮助您避免错误,并且您可以有条件地检查特定属性是否存在。

lmvvr0a8

lmvvr0a82#

你需要破坏袋子,然后从袋子里得到标题。
const { productInfo } = product;
console.log(productInfo?.image)
如果你不知道集合中有什么,你可以使用Object.keys()来获取不同的对象键,比如包、男孩、女孩、帽子等等。

相关问题