caractère newlines ignoré par la table jsx
Je suis en train de créer une table avec une multiligne de la chaîne, mais la chaîne n'est pas correctement mis en forme par ma table. Voici le jsx:
<td>
{arr.join('\n')}
</td>
Et voici le code html correspondant:
<td data-reactid=".xyz">Line 1
Line 2
Line 3
Line 4</td>
Mais dans le navigateur, il ressemble:
Ce qui se passe et comment puis-je obtenir mes nouvelles lignes apparaissent?
source d'informationauteur Eric Baldwin | 2015-04-01
Vous devez vous connecter pour publier un commentaire.
Vous avez un peu d'options:
1) l'Utilisation d'un élément de niveau bloc comme
div
ou unp
et envelopper chaque ligne.2) Utiliser un span avec un
br
élément:3) Si vous êtes certain il n'y a pas de menace de XSS/hacks avec les données, vous pouvez utiliser
dangerouslySetInnerHTML
avec un " br " pour chaque ligne:Le dernier génère le moins de quantité de HTML, mais à un coût du risque de la sécurité de la page web ou de l'utilisateur. Je ne voudrais pas utiliser ce un si les autres le travail pour vous.
Quand vous avez vraiment besoin de cela, utilisez
{'\n'}
à l'intérieur de votre JSX.essayez d'utiliser la
<pre>
de l'élément ou de la propriété csswhite-space: pre-wrap;
C'est un HTML chose où les retours à la ligne sont la même chose que des espaces.
À force d'utiliser des retours à la ligne
<br/>
les balises comme{arr.join('<br/>')}
.