【问题标题】:Get first key of nested object with react使用反应获取嵌套对象的第一个键
【发布时间】:2021-11-30 22:32:33
【问题描述】:

我真的是反应新手,我正在尝试 axios 获取一些数据,然后通过发布请求更新它们。这是我的对象

{
"id": "text",
"users": {
    "George": {
        "age": "6"
    }
}}

在我的代码中,我试图像这样获得“乔治”年龄:

const [subparameters, setSubParameters] = React.useState(null);
const params = [];
      for (const [key, value] of Object.entries(r.data.users.George)){
        const _parm = {parKey: key, parValue: value };
        console.log(_parm);
        params.push(_parm);
        setSubParameters(params)
      }

但在我的 POST 请求中,“George”发生了变化,r.data.parameters.George 不再起作用,因为这个名字是另一个名字。有什么办法解决这个问题吗?

【问题讨论】:

  • 你可以使用 r.data.users[Object.keys(r.data.users)[0]]。
  • 投赞成票,如果有帮助:)
  • @FarrukhRashid this r.data.users[Object.keys(r.data.users)[0]] 只返回 George 但如果我的 JSON 在发布请求后是这样的:“users”:{ “乔治”:{“年龄”:“6”},“玛丽亚”:{“年龄”:“7”},“艾米”:{“年龄”:“8”}}我如何获得每个不同的名称对象核心价值?因为我想将它与另一个变量进行比较。
  • Object.keys(r.data.users) 返回一个包含所有名称的数组,即 ["george", "maria"]。您可以通过它进行映射并进行比较。
  • @FarrukhRashid 你是对的!谢谢!!

标签: reactjs typescript api axios


【解决方案1】:

不是映射到r.data.users.George,而是映射到r.data.users

for (const [key, value] of Object.entries(r.data.users)){
        const _parm = {parKey: key, parValue: value }; // key = Geroge, value = {age: 6}
        console.log(_parm);
        params.push(_parm);
        setSubParameters(params)
      }

【讨论】:

  • 其实你建议的映射值是 value ={"age": "6"}
  • 是的,你是对的。你想得到key=agevalue=6还是key=Georgevalue=6
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-24
  • 2021-07-24
  • 2022-08-18
  • 1970-01-01
  • 2019-07-08
  • 2021-06-01
相关资源
最近更新 更多