reactjs - 发生了什么,我使用 Next.js 收到危险的SetInnerHTML 警告和空内容?
问题描述
首先,我知道我不应该嵌套<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 只是对错误和警告非常敏感吗?
解决方案
我遇到了同样的问题,因为richtext
我也得到了<p>
标签,所以当我将包装标签从切换<p>
到<div>
该错误时消失了。
推荐阅读
- macos - react-native,调试器冻结 macOS 上的应用程序
- asp.net-web-api - 找不到类型或命名空间名称“ApiController” - 已安装 Nuget
- powershell - Powershell 5.#添加类型加速器并在同一文件中的类中使用
- amazon-web-services - AWS 现场队列 terraform 请求子网
- c++ - 为什么我改编的选择排序算法在 C++ 中不起作用
- c# - 将恢复的文件转换为 .cs
- javascript - 如何删除特定子节点
- android-studio - 我是否将 oncreate 方法或 render 方法中的事件侦听器添加到 libgdx 中的演员?
- python - 将 BeautifulSoup 输出的字符与声明的字符进行比较时出错
- c++ - 确保一个类不继承自两个接口