【发布时间】:2018-10-15 03:18:41
【问题描述】:
我有以下函数将 JSX 添加到变量markup。但是,当调用该函数时,标记将呈现为纯文本而不是 JSX。如何让字符串呈现为 JSX 而不是纯文本?
函数调用:
<FormGroup controlId="items">
{this.renderItems()}
</FormGroup>
renderItems():
renderItems() {
let content = this.state.content;
console.log(content);
let markup = "<ul>";
for (const [key, value] of Object.entries(content)) {
if (value) {
markup += "<li><Checkbox checked>" + key + "</Checkbox></li>"
}
else {
markup += "<li><Checkbox>" + key + "</Checkbox></li>"
}
}
markup += "</ul>";
return (markup);
}
【问题讨论】:
-
您可以映射到 React 元素数组(或至少推送到它们的数组)而不是字符串
-
为什么不让
renderItems返回返回的 JSX 而不是字符串? -
让标记=[]; markup.push(yourJSX)
标签: javascript reactjs