我正在使用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,但似乎无法获得...
我从没使用过Google跟踪代码管理器,但是在我看来,这个脚本在React上显得太过强大了。