在反应中映射对象键并返回子属性

Posted

技术标签:

【中文标题】在反应中映射对象键并返回子属性【英文标题】:Mapping object keys in react and returning child properties 【发布时间】:2019-01-21 07:34:54 【问题描述】:

我有一个映射对象数量的报告。在我的示例中,有 3 个对象数组。我想在映射时获取每个对象中属性之一的值。

这是我返回报告的 sn-p React 代码:

return (
    <React.Fragment>
         Object.keys(result).map((item, i) => (
            <div key=i className="report">
                    <h3>result[item].name</h3>
            </div>
    ))
    </React.Fragment>
)

它映射const result,输出如下:

result = GK: Array(1), FB: Array(2), FW: Array(1)

上面有 3 个报告 - GK、FB 和 FW

我现在想进入每个报告并获得一个值。让我们看看FB:

FB: [ 0:Number: 1, newNumber:"1", name: "FB" 
      1:Number: 1, newNumber:"1", name: "FB" 
    ]

我想确保当我检索报告时,name 属性也映射了我想要获取的任何其他属性。

<h3>result[item].name</h3>

我认为上面会检索名称。所以我得到的结果是 3 个空白报告。

【问题讨论】:

似乎 result[item] 应该是一个数组对吗?因此,您还需要映射该数组。 result[item][0].name 应该返回字符串。 【参考方案1】:

您需要使用获得的key 再次映射到result

   <React.Fragment>
        Object.keys(result).map((key, i) => (result[key].map((media, ind) =>
              <div key=ind>
               <h3>media.name</h3>
             </div>
            )
        ))
      </React.Fragment>

【讨论】:

【参考方案2】:

试试这个代码:这里是代码的链接:https://codesandbox.io/s/pj1lv7y4xq

const arrayvals = [
    Number: 1, newNumber: "1", name: "FB" ,
     Number: 3, newNumber: "2", name: "FB" ,
      Number: 7, newNumber: "5", name: "GK" ,
       Number: 8, newNumber: "4", name: "FW" 
]



function App() 
  return (
    <div className="App">
      <h1>Mapping object keys in react and returning child properties
</h1>
    Object.entries(arrayvals).map((arr)=>

        return <div>Number is : arr[1].Number  || NewNumber is : arr[1].newNumber ||  and Value is : arr[1].name</div>
    )
    </div>
  );

【讨论】:

【参考方案3】:

再次通过map 中存在的内部元素result[item]

   return (
        <React.Fragment>
             Object.keys(result).map((item, i) => (
                <div key=i className="report">
                       result[item].map((media,ind) =>
                         <div key=ind>media.name</div>
                      )
                </div>
        ))
        </React.Fragment>
    )

【讨论】:

以上是关于在反应中映射对象键并返回子属性的主要内容,如果未能解决你的问题,请参考以下文章

在 Div 中添加子元素时,虽然使用 UseEffect 触发,但到达 useRef() 当前属性返回未知

尝试在反应中映射数据时出现错误。对象作为 React 子对象无效(找到:带有键 children 的对象),我该如何解决?

Mapstruct 映射:如果所有源参数属性为空,则返回空对象

Mapstruct 映射:如果所有源参数属性为空,则返回空对象

在 AlamoFire 框架中访问映射对象返回 nil 值

使用反应钩子获取数据在嵌套的 obj 属性上返回 undefined