3 回答

TA貢獻(xiàn)1893條經(jīng)驗 獲得超10個贊
這是一個 JSX 版本。
請注意,只有在有子項時才會調(diào)用遞歸調(diào)用。
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();
添加回答
舉報