gpt4 book ai didi

javascript - 通过 JSON 中的多个嵌套对象进行映射

转载 作者:行者123 更新时间:2023-12-05 04:40:08 25 4
gpt4 key购买 nike

我正在使用 React 开发一个简单的项目,并且是 React 的新手,我在通过给定的 json 文件进行映射以将所需对象发送到不同组件时遇到了问题。

这是我得到的 JSON 文件(通过 api)

{
"trees":{
"name":"a",
"age":"9",
"height":"10",
"location":"park"
},
"cars":{
"name":"b",
"age":"30",
"height":"10",
"location":"park"
},
"bikes":{
"name":"c",
"age":"110",
"height":"10",
"location":"park"
},.........................

这是我在 App.js 中获取的 json。我的想法是将其完全发送到另一个组件(Data.js),然后从 data.js 发送到另一个有树、汽车、自行车的组件。即使在执行 const d = [jsonfile] 之后,我也无法在任何级别映射此 json 文件,即使在此之后我在映射时仍未定义。

App.js

const[Data,setData] = useState([]);

useEffect(()=>{
fetch('API-HERE').then((result)=>{result.json().then((resp)=>{
setData(resp);
})})
},[])

return (
<div className="App">
<DataFetched data={Data} />
</div>
);

在此之后,我无法在 DataFetched.js 中映射以将其发送给另一个 child ,只能将树木、汽车、自行车分开,以便可以读取它们的属性。

最佳答案

使用 Object.entries 迭代 JSON 属性。

你可以这样试试。

import React from "react";

const DataFetched = ({ data }) => {
if (!data) {
return null;
}
return Object.entries(data).map(
([key, { name, age, height, location }]) => {
return (
<div key={key}>
<div>{name}</div>
<div>{age}</div>
<div>{height}</div>
<div>{location}</div>
</div>
);
}
);
};

export default DataFetched;

或者您可以从另一个子组件接收数据。

import React from "react";

const MyChildComponent = ({ data: { name, age, height, location } }) => {
return (
<div>
<div>{name}</div>
<div>{age}</div>
<div>{height}</div>
<div>{location}</div>
</div>
);
};

const DataFetched = ({ data }) => {
if (!data) {
return null;
}
return Object.entries(data).map(
([key, value]) => {
return (
<MyChildComponent data={value}/>
);
}
);
};

export default DataFetched;

关于javascript - 通过 JSON 中的多个嵌套对象进行映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70332821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com