【发布时间】:2020-02-04 13:27:03
【问题描述】:
首先,我知道我不应该嵌套<p> 标签。
所以我创建了一个 Next.js 应用程序,并且我有一个设置富文本 html 的组件,如下所示:
<Typography
dangerouslySetInnerHTML={{
__html: richText
}}
/>
react 组件 Typography 最后只是一个 p 标记,所以这可以简单地写成:
<p
dangerouslySetInnerHTML={{
__html: richText
}}
/>
所以当浏览器加载页面时,我的内容没有显示出来,我只剩下控制台警告:
Warning: Prop 'dangerouslySetInnerHTML' did not match. Server: "" Client: "<p>...</p>"
经过漫长的调试会话后,在清理过程中,使用 <span> 而不是 <p> 是解决方案
<span
dangerouslySetInnerHTML={{
__html: richText
}}
/>
嵌套 p 标签是一个错误,无论如何,发生了什么导致 Next.js 无法呈现此特定内容,从而导致空字符串 Server: ""? Next.js 只是对错误和警告非常敏感吗?
【问题讨论】:
-
Nested p tags was a mistake…谢谢,解决了我的问题!
标签: reactjs next.js server-side-rendering