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

React项目使用react-helmet引入Microsoft Clarity脚本报错如何解决?

React集成Microsoft Clarity脚本报错解决方案

问题原因

报错和Clarity官方脚本本身无关,是JSX语法规则导致的:在JSX中写在<script>标签内部的代码里,{、}会被React识别为JS表达式插值占位符,而非普通JS代码字符,解析器读取到函数大括号时会认为语法不匹配,因此抛出缺失}的错误。

修复方案

方法1:使用dangerouslySetInnerHTML注入脚本

将完整脚本内容转为字符串传入dangerouslySetInnerHTML属性,可避免JSX解析大括号时的语法冲突,代码如下:

import React from "react";
import { Helmet } from "react-helmet";

class siteAnalytics extends React.Component {
    render() {
        return (
            <div className="siteAnalytics">
                <Helmet>
                    <script 
                        type="text/javascript"
                        dangerouslySetInnerHTML={{
                            __html: `
                            (function(c,l,a,r,i,t,y){
                                c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments) };
                                t=l.createElement(r);
                                t.async=1;
                                t.src="https://www.clarity.ms/tag/"+i;
                                y=l.getElementsByTagName(r)[0];
                                y.parentNode.insertBefore(t,y);
                            })(window, document, "clarity", "script", "7ds6fq93fz");
                            `
                        }}
                    />
                </Helmet>
            </div>
        );
    }
};

export default siteAnalytics;

方法2:拆分脚本加载逻辑

也可以拆分成前置定义和外置脚本引入两部分,写法更简洁:

import React from "react";
import { Helmet } from "react-helmet";

class siteAnalytics extends React.Component {
    render() {
        return (
            <div className="siteAnalytics">
                <Helmet>
                    <script 
                        dangerouslySetInnerHTML={{
                            __html: `window.clarity = window.clarity || function(){(clarity.q = clarity.q || []).push(arguments)};`
                        }}
                    />
                    <script async src="https://www.clarity.ms/tag/7ds6fq93fz" />
                </Helmet>
            </div>
        );
    }
};

export default siteAnalytics;

内容的提问来源于stack exchange,提问作者era s'q

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 23:27:02