You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中使用replaceAll()添加<br>标签无法换行如何解决

问题原因及解决方案

根因说明

React 默认会对插入到 JSX 中的字符串做转义处理,防范 XSS 攻击,你通过 replaceAll 生成的 <br> 会被当成普通文本渲染,不会被浏览器解析为换行标签,所以看不到换行效果。

解决方案

方案1(推荐,安全无风险)

先把字符串按逗号拆分为数组,再遍历数组插入换行标签,不需要依赖高危渲染属性:

export default function App() {
  const string = 'test data,cars,colors,demo';
  const textArr = string.split(',');

  return (
    <div className="App">
      <h1>
        Hello 
        {textArr.map((item, idx) => (
          <React.Fragment key={idx}>
            {idx !== 0 && <br />}
            {item}
          </React.Fragment>
        ))}
      </h1>
    </div>
  );
}

方案2(使用replaceAll,需注意安全风险)

如果你坚持要通过 replaceAll 替换生成 HTML 字符串再渲染,可以使用 dangerouslySetInnerHTML,注意仅在你能确保字符串内容完全可控、没有用户输入的场景下使用,避免XSS攻击:

export default function App() {
  const string = 'test data,cars,colors,demo';
  // 用replaceAll替换逗号为<br>
  const renderHtml = `Hello ${string.replaceAll(',', '<br>')}`;

  return (
    <div className="App">
      <h1 dangerouslySetInnerHTML={{ __html: renderHtml }} />
    </div>
  );
}

内容的提问来源于stack exchange,提问作者Asking

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:39:04