有人能帮我解决这个错误吗?我遵循了一个电子商务示例应用程序,但最后,当我点击“立即购买”时遇到了一个错误。这是我收到的消息:服务器错误类型错误:无法解构“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;
谢谢你
当您点击“现在购物”时,它应该直接打开购物车。
2条答案
按热度按时间vq8itlhq1#
而不是像这样破坏你的财产
你应该像这样访问它们
这将帮助您避免错误,并且您可以有条件地检查特定属性是否存在。
lmvvr0a82#
你需要破坏袋子,然后从袋子里得到标题。
const { productInfo } = product;
console.log(productInfo?.image)
如果你不知道集合中有什么,你可以使用Object.keys()来获取不同的对象键,比如包、男孩、女孩、帽子等等。