NodeJS TypeError:无法读取undefined的属性(阅读'name'),问题出在哪里?

dphi5xsq  于 2023-06-22  发布在  Node.js
关注(0)|答案(3)|浏览(135)

名称,分布和价格都很好,只有当我给予类别我得到这个错误。我给它的方式,它是在数据库中的结构,仍然得到错误。文字有问题吗?有人会善意地指出一个小错误。

import React, { useEffect, useState } from "react";
import Layout from "../Components/Layout/Layout";
import axios from "axios";
import { useParams } from "react-router-dom";

const ProductDetails = () => {
  const params = useParams()
  const [product, setProduct] = useState({});

  // initall details
  useEffect(() => {
    if (params?.slug) getProduct();
  }, [params?.slug]);
  // getProduct
  const getProduct = async () => {
    try {
      const { data } = await axios.get(
        `/api/v1/product/get-product/${params.slug}`
      );
      setProduct(data?.product);
    } catch (error) {
      console.log(error);
    }
  };
  return (
    <Layout>
      <div className="row grid lg:grid-cols-3 m-4">
        <div className="col-1   ">
          <img
            className="w-96 h-96"
            src={`/api/v1/product/product-photo/${product._id}`}
            alt={product.name}
          />
        </div>
        <div className="col-2">
          <h1 className="text-center">Products Details</h1>
          <h4>Name: {product.name} </h4>
          <h4>Description: {product.description} </h4>
          <h4>Price: {product.price}</h4>
          <h4>Cetegory: {product.category.name}</h4>
        </div>

        <div className="col-3">
          <p>Similar Products</p>
        </div>
      </div>
    </Layout>
  );
};

export default ProductDetails;

pexxcrt2

pexxcrt21#

<h4>Category: {product.category && product.category.name}</h4>

这将在尝试访问product.category的name属性之前检查product.category是否存在。
确保验证API响应的结构,并确保类别属性正确填充了必要的数据和名称。

t8e9dugd

t8e9dugd2#

<h4>Category: {product?.category?.name}</h4>

这里我使用了&&(and)运算符的简写。首先,我们将检查“product”是否可用,如果是,那么我们将访问“category”变量,然后,我们将检查“category”对象的“name”键是否存在。这将纠正你的错误。

2w3kk1z5

2w3kk1z53#

我推荐你使用产品吗?所有的代码。另外,您需要在www.example.com上检查异常product.category.name

相关问题