Quiero cargar algunos archivos de script en la etiqueta Helmet usando Gatsby.js, los archivos de script son algo como esto:
<script type="text/javascript"> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('consent', 'default', { ad_storage: 'denied', analytics_storage: 'denied', wait_for_update: 1500, }); gtag('set', 'ads_data_redaction', true); </script>Este es mi componente SEO:
<Helmet> <title>{metaTitle}</title> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <script id="CookieConsent" src="https://policy.app.cookieinformation.com/uc.js" data-culture="EN" type="text/javascript"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=321012880"></script> <script type="text/javascript"> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('consent', 'default', { ad_storage: 'denied', analytics_storage: 'denied', wait_for_update: 1500, }); gtag('set', 'ads_data_redaction', true); </script> </Helmet> cuando uso esto directamente dentro de la etiqueta del Helmet , esto causará un error, mejor dicho, el código del script no se leerá. ¿Alguna idea de cómo resolver esto? ¿O hay alguna alternativa para cargar archivos de script en Gatsby? Gracias
En Helmet 3.0.0 puedes usar innerHTML :
<Helmet script={[{ type: 'text/javascript', innerHTML: ` window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('consent', 'default', { ad_storage: 'denied', analytics_storage: 'denied', wait_for_update: 1500, }); gtag('set', 'ads_data_redaction', true); ` }]} />