Я пытаюсь построить некоторый 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?