如何避免React的dangerouslySetInnerHTML 把<code>内的<br/>过滤掉?

在使用React的dangerouslySetInnerHTML时,发现会把<code>内的<br/>过滤掉,

// 为了方便先把contentHtml写死了
const contentHtml = '<pre data-lang="javascript" class="lang-javascript"><code class="lang-javascript">const b = 2;<br/>const a = 1;<br/><br/></code></pre><p></p>';
// 使用时
<div className={styles.contentContainer} dangerouslySetInnerHTML={{ __html: contentHtml }} />

结果<br>被过滤掉了,code内也没有换行效果

clipboard.png

如果手动编辑html,插入<br>, 就是期望的结果,请问如何让<br>不被过滤掉呢?

clipboard.png

谢谢🙏

阅读 4.6k
2 个回答

React 并不会过滤。你用了什么代码美化库吧,是它把 br 给过滤了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题