to należy się spodziewać, że trzeba konwertować nowej linii (\ n) znaków na linię HTML łamie
artykuł o używaniu go w reakcji: https://medium.com/@kevinsimper/react-newline-to-break-nl2br-a1c240ba746#.l9sbqp5aw
Cytując artykuł:
bo wiesz, że wszystko jest w React funkcje, tak naprawdę nie można zrobić tego
this.state.text.replace(/(?:\r\n|\r|\n)/g, '<br />')
Si nce, która zwróci ciąg znaków z węzłami DOM wewnątrz, co nie jest dozwolone, ponieważ musi być tylko ciągiem znaków.
wtedy może spróbować zrobić coś takiego:
{this.props.section.text.split(“\n”).map(function(item) {
return (
{item}
<br/>
)
})}
Tego nie wolno albo dlatego ponownie React jest czyste funkcje i dwie funkcje mogą być obok siebie.
tldr. Rozwiązanie:
{this.props.section.text.split(“\n”).map(function(item) {
return (
<span>
{item}
<br/>
</span>
)
})}
Teraz pakujemy każdą przerwę linii w rozpiętości, a to działa dobrze, ponieważ span ma wbudowany wyświetlacz. Teraz mamy działające rozwiązanie łamania linii nl2br.
Myślę, że to powinna być akceptowana odpowiedź: – bpercevic
najlepsze i najprostsze rozwiązanie! – beydogan
Działa to na wiele sposobów: jeśli spróbujesz renderować podział wiersza (
) w JSX za pomocą zmiennej, "bezpiecznie" wyrenderuje on znacznik, zamiast dodawać podział wiersza. Używanie znaków ucieczki z tym CSS działa na rzecz tego mechanizmu bezpieczeństwa, jak również naprawia wskazany problem. – bvoyelr