首页 > 解决方案 > 如何指定子属性的值

问题描述

环境是反应功能组件。使用useState钩子,我成功地从 API 调用中检索 JSON 对象并可以记录它。但是,我收到未定义的尝试记录子属性。

"data": {
  "id": 4876,
  "Number": "043-008",
  "Description": "On/Off Pull Chain Electrolier; Polished Brass",
  "Prod Cat": "Lamp Parts",
  "Mfg": "ADL",
  "Mfg Number": "D4110",
  "Warehouse": "2",
  "Warehouse Row": null,
  "Warehouse Shelf": null,
  "Color": "Polished Brass",
  "Stock Class": "W    ",
  "Unit of Measure": "      ",
  "Last Cost": 3.74
 }
}

如上所示,console.log (data) 正常,但 data.id 未定义。

标签: javascriptreactjs

解决方案


我看到这可能发生的两种情况:首先,您有一个带有属性的对象data。的值data是一个具有属性的对象id。因此,您需要以这种方式访问​​它:data.data.id. 这可能会令人困惑,但第一个data实际上只是变量的名称,您可以为其分配任何名称。第二个取决于您的 JSON 对象。

第二个问题可能是您从 API 获取对象作为对象的字符串表示形式,而不是实际对象。尝试将其解析为 JSON,如下所示:

const parsedData = JSON.parse(data);
console.log(parsedData.data.id);

推荐阅读