首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:无法读取未定义的属性(读取“Product-1”)

TypeError:无法读取未定义的属性(读取“Product-1”)
EN

Stack Overflow用户
提问于 2022-06-30 11:20:37
回答 1查看 1.1K关注 0票数 0

因此,我试图在我的React.js项目中显示JSON数据,但是我得到了一个我找不到的错误。我花了两天的时间想办法弄清楚,但没有运气

JSON数据:(文件名: products.json)

代码语言:javascript
复制
{
    "product-1": [
        {
            "id": 1,
            "name": "product-1",
        }
    ],

    "product-2": [
        {
            "id": 2,
            "name": "product-2",
        }
    ],

    "product-3": [
        {
            "id": 3,
            "name": "product-3",
        }
    ]
}

我的javascript:

代码语言:javascript
复制
  const productsData = Object.keys(backendData).map(key => {
    return {
        [key]: backendData[key]
    }
  })

  console.log(productsData[0].products["product-1"][0].id)

错误:

backEndData日志:

EN

回答 1

Stack Overflow用户

发布于 2022-06-30 11:26:04

因为productsData会像这样返回数组:

代码语言:javascript
复制
    [ 
        { "product-1": [
            {
                "id": 1,
                "name": "product-1",
            }
        ]}, 
        {"product-2": [
            {
                "id": 2,
                "name": "product-2",
            }
        ]}, .... 
    ]

这意味着这是一个对象数组,其中每个对象都有一个键值对,其中键是名称,值是一个数组。如果您想访问id,那么应该这样做:

代码语言:javascript
复制
productsData[0]["product-1"][0].id

在OP更新后更新

由于您的backendData值与product.json不匹配,所以我将忽略该product.json,并为您刚才提供的backendData值编写解决方案。

代码语言:javascript
复制
const productsData = backendData.products;
const id = productsData[0]["product-1"][0].id;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72814883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档