我有一些props的字符串可以包含诸如 & 之类的字符。它还包含空格。我想用
.
有没有一种简单的方法可以做到这一点?请记住,我不能仅使用以下语法进行渲染:
<div dangerouslySetInnerHTML={{__html: myValue}} />
因为我首先必须用它们的标记替换任何 HTML 实体。我不想这样做,它似乎太低级了。
有没有办法做到这一点?
我有一些props的字符串可以包含诸如 & 之类的字符。它还包含空格。我想用
.
有没有一种简单的方法可以做到这一点?请记住,我不能仅使用以下语法进行渲染:
<div dangerouslySetInnerHTML={{__html: myValue}} />
因为我首先必须用它们的标记替换任何 HTML 实体。我不想这样做,它似乎太低级了。
有没有办法做到这一点?
您可以不使用 HTML 实体,而是使用
引用 (U+00A0 NON-BREAKING SPACE)的 Unicode 字符:
<div>{myValue.replace(/ /g, "\u00a0")}</div>
我知道这是一个老问题,这并不能完全满足您的要求,但不是编辑字符串,而是使用 CSSwhite-space: nowrap
属性更好地解决您想要实现的问题:
在 HTML 中:
<div style="white-space: nowrap">This won't break lines</div>
在react:
<div style={{ whiteSpace: 'nowrap' }}>{myValue}</div>
如果要显示漂亮的 xml:
var str = "<test>\n\t\t<value>1</value>\n</test>\n".replace(/</g, '<').replace(/>/g, '>').replace(/\t/g, "\u00a0").replace(/\n/g, '<br/>');
return (
<div dangerouslySetInnerHTML={{__html: str}} ></div>
)
好吧,在这里打字而不消失是非常困难的,所以我添加了一点空白,以便每个人都能看到它。如果您从此标签中删除空格 < /> ,那么您将能够在 React 中使用不间断空格。
React 将这个 JSX 标签转换成一个不间断的空间。奇怪的怪癖:这也必须与要空格的文本在同一行上使用。此外,带有此标签的不间断空格不会在 React 中堆叠。