开发者问题收集

ProductDetail.js:13 未捕获的类型错误:无法读取未定义的属性(读取“名称”)

2022-02-07
321

我收到以下错误 -

ProductDetail.js:13 Uncaught TypeError: 无法读取未定义的属性(读取“name”)

import React from 'react';
import {useParams } from 'react-router-dom';
import products from '../products';

const ProductDetail = () => {

    const { id } = useParams();

    const product = products.find((p) => p._id === Number(id));

    return (
        <div>
            {product.name}
        </div>
    );
}

export default ProductDetail;

products.js

const products = [
  {
    '_id': '1',
    'name': 'Samsubg A001',
    'description':
      'testinggggg',
    'brand': 'Samsung',
    'category': 'Mobile',
    'price': 10,
    'Stock': 20,
    'rating': 4.5,
    'Reviews': 12,
  },
3个回答

您确定 product 变量未定义吗?似乎您正在尝试访问未定义变量内的 name 属性。

I.Yan
2022-02-07

您可以通过检查产品是否未定义来短路,或者您可以使用像这样的可选链接 product?.name

berghall
2022-02-07

const product = products.find((p) => p._id === String(id));

这样可以

PEREZ J DIKWELLA
2022-09-26