如何嘲笑脚本标记>>

问题描述 投票:0回答:1

我正在使用react-helmet在特定页面上包含google tag manager脚本标签。它可以正常工作,但开玩笑会抛出一个声明异常。

通常,我会使用jest.mock,但我似乎无法使其正常运行,并且我似乎无法避免忽略该行代码。

   <Helmet>
          <title>{messages.title.defaultMessage}</title>
          <meta name="title" content={messages.metaTitle.defaultMessage} />
          <meta name="description" content={messages.metaDescriptions.defaultMessage} />
          <meta name="keyword" content={messages.metaKeyword.defaultMessage} />
          {/* Google Tag Manager */}
          <script id="ga-script" type="text/javascript">
            {((w, d, s, l, i) => {
              w[l] = w[l] || [];
              w[l].push({
                'gtm.start': new Date().getTime(),
                event: 'gtm.js',
              });
              const f = d.getElementsByTagName(s)[0];
              const j = d.createElement(s);
              const dl = l !== 'dataLayer' ? `&l=${l}` : '';
              j.async = true;
              j.src = `https://www.googletagmanager.com/gtm.js?id=${i}${dl}`;
              f.parentNode.insertBefore(j, f);
              f.className = 'ga-script';
              j.className = 'ga-script';
            })(window, document, 'script', 'dataLayer', 'GTM-000000')}
          </script>
          {/* End Google Tag Manager*/}
        </Helmet>
<VerificationPhonePage /> equalEmailProps › encountered a declaration exception

    TypeError: Cannot read property 'parentNode' of undefined

      296 |               j.async = true;
      297 |               j.src = `https://www.googletagmanager.com/gtm.js?id=${i}${dl}`;
    > 298 |               f.parentNode.insertBefore(j, f);
          |                 ^
      299 |               f.className = 'ga-script';
      300 |               j.className = 'ga-script';
      301 |             })(window, document, 'script', 'dataLayer', 'GTM-000000')}

我正在使用react-helmet在特定页面上包含google tag manager脚本标签。它工作正常,但开玩笑会引发声明异常。通常我会使用jest.mock,但似乎无法获得...

javascript reactjs google-tag-manager jest react-helmet
1个回答
0
投票

我从没使用过Google跟踪代码管理器,但是在我看来,这个脚本在React上显得太过强大了。

© www.soinside.com 2019 - 2024. All rights reserved.