当对象键未知时,React 使用 map 访问嵌套对象
2021-11-09
1086
我正在使用 Firebase Store 开发 NextJs 项目。 我访问一个集合并获取一个数组,其中包含具有随机键的对象,并将数据作为值:
const data = [
{
randomdocid67233: {
name: "ABC",
latinName: "DEF"
}
},
{
randomdocid6d7dddd233: {
name: "GHI",
latinName: "JKI"
}
}
];
因为我不知道 randomdocid,所以我无法弄清楚如何显示名称和 latinName。我制作了一个带有问题的 codesandbox 来说明它: https://codesandbox.io/s/spring-fast-w0tt4?file=/src/App.js:56-268
我确信这实际上很容易做到,但我似乎无法弄清楚。希望有人知道!
谢谢, Santi。
2个回答
您可以使用
Object.keys()
作为解决方案
{data.map((item, index)=> {
let key=Object.keys(item)[0]
return <div key={key}> // better to use unique key value then index
{item[key].latinName}
</div>
)}
Chemi Adel
2021-11-09
您需要先获取每个对象内的键,然后返回映射中该键的值。根据需要更新代码,以便在获取数据后呈现数据。您可以这样做
export default function App() {
const data = [
{
randomdocid67233: {
name: "ABC",
latinName: "DEF"
}
},
{
randomdocid67233: {
name: "GHI",
latinName: "JKI"
}
}
];
const newData = data.map(item => {
const key = Object.keys(item)[0];
return item[key]
})
return (
<div className="App">
<h1>Hello CodeSandbox</h1>
<h2>Start editing to see some magic happen!</h2>
{newData.map((item, index) => (
<div key={index}>
{item.name} {item.latinName}
</div>
))}
</div>
);
}
sathya reddy
2021-11-09