json - 在 React 中递归渲染嵌套数据,我想恢复这个文件 json 的“名称”
问题描述
我将如何从这个列表 json 中创建一个“名称”列表
[
{
"id": "LIB1",
"name": "Library 1",
"context": "C1",
"children": [
{
"id": "SKI1",
"name": "SKill 1",
"context": "C1",
"children": [
{
"id": "SKI11",
"name": "SKill 11",
"context": "C1"
},
{
"id": "SKI12",
"name": "SKill 12",
"context": "C1",
"children": []
},
{
"id": "SKI13",
"name": "SKill 13",
"context": "C1",
"children": [
{
"id": "SKI131",
"name": "SKill 131",
"context": "C1",
"children": [
{
"id": "SKI1311",
"name": "SKill 1311",
"context": "C1",
"children": [
{
"id": "SKI13111",
"name": "SKill 13111",
"context": "C1"
}
]
}
]
}
]
}
]
},
{
"id": "SKI2",
"name": "SKill 2",
"context": "C1",
"children": [
{
"id": "SKI21",
"name": "SKill 21",
"context": "C1",
"children": [
null
]
},
{
"id": "SKI22",
"name": "SKill 22",
"context": "C1"
}
]
}
]
}
]
我试过这段代码,但我只得到第一个“名字”
const PostData =({data})=>{
return(
<div>
<ul>
{data.map(item => {
return <div>
<li>
{item.name}
{item.children.name && <PostData data={item.children.name}/>}
</li>
</div>
})}
</ul>
</div>
)
}
const DATA = require('./data.json')
function App() {
return (
<div className="App">
<PostData data={DATA}/>
</div>
);
}
export default App;
我想恢复这个文件json的“名称”谢谢请帮帮我
我试过这段代码,但我只得到第一个“名字”
感谢您的帮助
解决方案
item.children.name
不存在,children 是一个数组。你可以使用item.children.ength
如果要排除没有名称的节点,可以先过滤数组。
推荐阅读
- multiple-monitors - 如何在 i3 启动时将特定工作区显示到选定的屏幕?
- python - 如何在使用python在文本中找到关键字后提取几个之前的单词
- angular - 无法将包管理器更改为纱线
- python - 在 Codeanywhere 上的 Python (Ubuntu14.04) 上安装 Pillow
- r - 具有多行数据的堆叠 geom_area
- javascript - 如何检查内容是否加载到 HTML 嵌入标签中?
- java - 如何在akka调度程序中重用actor ref
- datetime - SAS:数据集名称删除日期并替换为当前日期
- android - NFC-V ICODE SLIX (SL2S2002)
- reactjs - 根据来自 onClick React js 的条件添加属性