我需要呈现混合了markdown和常规HTML的内容。内容是从服务器查询的,我无法确定表内是否有空格。例如内容原始数据:
# [React](https://reactjs.org/)<br>React is a JavaScript library for building user interfaces.<br><table style=\"border: 1px solid black;\"> <tr> <td> <center>TEST TEST TES</center> </td> </tr> </table>
因为react-markdown
通常会转义 HTML,所以我需要使用rehype-raw来正确呈现 HTML。
对于上面的内容体,如果我只是dangerouslySetInnerHTML
用来渲染它,除了不会渲染markdown格式之外,不会有错误。
<section dangerouslySetInnerHTML={{ __html: props.content! }}></section>
但是,如果我使用react-markdown
with rehype-raw
,虽然 HTML 和 markdown 都可以呈现,但我会在开发工具中收到警告
<ReactMarkdown rehypePlugins={[rehypeRaw]}>
{props.content!}
</ReactMarkdown>
警告:validateDOMNesting(...):空白文本节点不能作为 . 确保源代码每一行的标签之间没有任何额外的空格。
所以我的问题是:
- 我知道这个警告是什么,但是为什么我在使用时没有收到此警告,但在我使用
dangerouslySetInnerHTML
时却出现了react-markdown
- 由于我无法控制来自服务器端的内容主体,有什么方法可以防止警告出现在开发工具上?