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

JSX模板字符串内使用双引号时文本内容与服务端渲染HTML不匹配

JSX模板字符串双引号导致SSR内容不匹配问题

问题场景

在JSX的<style>标签内使用模板字符串时,若用&quot;&quot;作为CSS content属性的值,会触发客户端与服务端渲染内容不匹配的报错,控制台提示如下:
控制台报错截图

问题代码示例:

<div>
  <style>{`
    p::before {
      content: &quot;&quot;;
    }
  `}</style>
  <p>Hello World.</p>
</div>

原因分析

服务端渲染时,&quot;&quot;会被HTML解析器转换为"";但客户端处理JSX模板字符串时,会将&quot;&quot;作为字面量保留,导致两端渲染的内容不一致,触发React的hydration校验错误。

解决方法

方法1:使用单引号代替转义双引号

CSS的content属性支持单引号作为值的包裹符,直接替换即可:

<div>
  <style>{`
    p::before {
      content: '';
    }
  `}</style>
  <p>Hello World.</p>
</div>

方法2:直接使用未转义的双引号

由于模板字符串用反引号(`)包裹,内部的双引号不需要转义,直接写入即可:

<div>
  <style>{`
    p::before {
      content: "";
    }
  `}</style>
  <p>Hello World.</p>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 02:01:17