gpt4 book ai didi

javascript - 如何使用 JSON 数据嵌套 React 组件

转载 作者:行者123 更新时间:2023-11-30 23:55:33 28 4
gpt4 key购买 nike

我正在尝试使用 JSON 数据将 4 个独立的组件映射到各自的行中。

您可以在此处查看该应用程序 - https://stackblitz.com/edit/react-kt1zf8

数据.json

const data = {

"lanes":[
{
"_uid": "001",
"name": "Lane1",
"type": "Toll",
"cars":[
{
"component": "Bmw",
"name": "i8",
"number": "12345",
},
{
"component": "Lambo",
"name": "Aventador",
"number": "214512512",

},
]
},
{
"_uid": "002",
"name": "Lane2",
"type": "Easy Pay",
"cars":[
{
"component": "Fiat",
"name": "i8",
"number": "12345",
},
{
"component": "Dodge",
"name": "Aventador",
"number": "214512512",

},
]
},
]
}

export default data

行使用 JSON 中的“uid”键在其自己的组件中呈现。

映射行数据(车道和汽车类型)正在正确呈现。在堆栈 Blitz 中,您可以看到每一行中的数据都是唯一的。

但是,当我尝试映射嵌套数据时,两行上仅返回第一 channel 的结果。

Lanes

Components.jsx中,我使用data.js中 channel 的唯一id(“uid”)键来确定 channel ,但无法弄清楚我做错了什么。为什么使用相同 key 时只显示前两个结果?

最佳答案

enter image description here

汽车容器

const CarContainer = (props) => {

return (
<div className="car-container">
{props.data.cars.map(block => Components(block))}
</div>
);
};

export default CarContainer;

车道信息

const LaneInfo = () => {
const [laneData, setLaneData] = React.useState(null);

React.useEffect(() => {
setLaneData(data.lanes);
}, []);

return (
<>
{laneData &&
laneData.map((p) => (
<>
<div className="lane">
<div className="space" key={p.uid}>
<div>{p.name}</div>
<div>{p.type}</div>
</div>
</div>
<CarContainer data={p}/>
</>
))}
</>
);
};
export default LaneInfo;

关于javascript - 如何使用 JSON 数据嵌套 React 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61081485/

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