我有一些动态JSON字符串如下:
Status is unknown\nThe combination is excluded by the following restriction\nRestriction number 2. 01 Mar 12 08:03:01 0--Exclusion--OrderDeliveryTimeframe.equals(\"oneMonth\") && OrderShipping.equals(\"air\")\n\n
所以当我打印和输出相同的内容时,\n
不会在新行中呈现文本,所以我写了下面的代码:
return <div>
{item.intro.replace(/[\n \n\n]/g, "\n")}
<br/>
现在的问题是-它在遇到第一个\n
后呈现下一行的文本,但在此之后不呈现。它也不适用于\n\n
。我想我遗漏了一些东西。有人能帮我吗?提前感谢。
4条答案
按热度按时间kyvafyod1#
\n
不是HTML中的换行符,它只是一个空格。HTML中的任何一系列空格字符都被视为 * 一个 * 空格。其中的React部分是如何使用
br
元素来执行您想要执行的操作。最简单的方法是让
div
区别对待空白,as discussed in this question's answers。或者,您可以使用一个元素(如
div
或p
)将行换行:或者,如果您希望在行之间使用
br
元素,则可以使用片段:<>___</>
,因为它们不支持键。)*但我不喜欢最后一个,因为它以
<br/>
结尾。您可以修复它,但它更复杂:6psbrbz92#
一种可能的解决方案是,通过
\n
对字符串进行.split()
,然后使用.map()
呈现<p>
标记之间迭代的每个元素。尝试以下操作:
您将得到类似的结果-这不是使用JSX,只是为了表示:
x一个一个一个一个x一个一个二个x
希望这能有所帮助!
umuewwlo3#
只使用css
white-space:pre
怎么样:您可以运行下面的脚本,希望这将有所帮助.
pbpqsu0x4#
使用
\n
拆分字符串,然后通过循环结果数组来显示它们。这样就可以获得预期的输出。希望这对您有所帮助