Dies ist zu erwarten, um die neue Zeile (\ n) Zeichen HTML-Zeilenumbrüche
Ein Artikel über die Verwendung in konvertieren müssten reagieren: https://medium.com/@kevinsimper/react-newline-to-break-nl2br-a1c240ba746#.l9sbqp5aw
Artikel zitieren:
Weil Sie wissen, dass alles in React ist Funktionen, kann man nicht wirklich das tun
this.state.text.replace(/(?:\r\n|\r|\n)/g, '<br />')
Si nce, die einen String mit DOM-Knoten zurückgibt, der auch nicht erlaubt ist, weil er nur eine Zeichenkette sein muss.
Sie können dann versuchen, so etwas wie dies tun:
{this.props.section.text.split(“\n”).map(function(item) {
return (
{item}
<br/>
)
})}
das auch nicht, weil wieder erlaubt ist, Reagieren reine Funktionen ist und zwei Funktionen können nebeneinander sein.
tldr.
Lösung
{this.props.section.text.split(“\n”).map(function(item) {
return (
<span>
{item}
<br/>
</span>
)
})}
Jetzt sind wir jeden Zeilenumbruch in einer Spanne Einwickeln, und das funktioniert gut, weil Spanne Display inline hat. Jetzt haben wir eine funktionierende nl2br Zeilenumbruch-Lösung
Ich denke, das sollte die akzeptierte Antwort sein – bpercevic
beste und einfachste Lösung! – beydogan
Dies funktioniert auf mehrere Arten: Wenn Sie versuchen, einen Zeilenumbruch (
) in JSX durch eine Variable zu rendern, wird das Markup "sicher" gerendert, anstatt den Zeilenumbruch hinzuzufügen. Die Verwendung von Escape-Zeichen mit diesem CSS funktioniert um diesen Sicherheitsmechanismus herum und behebt das angegebene Problem. – bvoyelr