3 回答
TA贡献1893条经验 获得超10个赞
这是一个 JSX 版本。
请注意,只有在有子项时才会调用递归调用。
const data = [
{
"tag": "div",
"children": [
{
"tag": "p",
"text": "hey",
"style": {
"color": "red",
"fontSize": "12px"
}
}
]
},
{
"tag": "div",
"text": "Yo"
}
];
const Elements = ({elements}) => {
return (
<React.Fragment>
{elements && elements.map(element => {
let {tag, text, children, style} = element
if(tag === "div") {
return(
<div style={style ? style: {}}>{text}
{children && <Elements elements={children}/>}
</div>
)
} else if(tag === "p") {
return(
<p style={style ? style: {}}>{text}
{children && <Elements elements={children}/>}
</p>
)
}
})}
</React.Fragment>
);}
function render() {
ReactDOM.render(<Elements elements={data} />, document.getElementById("root"));
}
render();
添加回答
举报