【发布时间】:2020-02-24 03:23:41
【问题描述】:
我正在尝试以以下格式构建一些 HTML:
<h1>Title</h1>
<p>
Always existing sentence. Optional sentence.<br/>
Always existing sentence. Optional sentence.
</p>
<p>
<span>Always existing span</span>
<span>Optional span</span>
</p>
构建/渲染它的最佳方式是什么? 我得到的最近的是一些 JSX:
const title = <h1>Title</h1>
const line1 = [`Always existing sentence.`];
const line2 = [`Always existing sentence.`];
if (condition) {
line1.push(`Optional sentence.`);
line2.push(`Optional sentence.`);
}
const para1 = React.createElement('p', null, [line1.join(' '), line2.join(' ')].join('<br/>'));
const spans = [React.createElement('span', null, `Always existing span`)];
if (condition2) {
spans.push(React.createElement('span', null, `Optional span`));
}
const para2 = React.createElement('p', null, spans.join('<br/>'));
return <>{title}{para1}{para2}</>;
这与呈现为<p>[object Object]<br/>[object Object]</p> 的最后一段不同。我假设因为跨度是 ReactElements。但我不知道如何join()他们。或者即使这是最好的方法。
那么,逐步构建 HTML 以在 React 中呈现的最佳方法是什么?
【问题讨论】: