Может ли React Helmet добавить объект javascript в тег <HEAD>?

У меня есть вопрос, мне нужно вставить в тег HEAD объект javascript, для целей управления тегами. Это мой компонент Helmet, но он принимает только определенные параметры, которые должны быть установлены на стороне метаданных с помощью функции rewind().

Есть ли еще способ использовать React Helmet, чтобы делать то, что мне нужно, поэтому создавать объекты javascritpt в теге SCRIPT или мне следует использовать другой подход?

MyComponent.js

<Helmet
    title={article.get('title')}
    meta={[
        {"property": "og:title", "content": article.get('title')},
        {"property": "og:url", "content": article.get('url')},

        {"property": "twitter:title", "content": article.get('title')}
    ]}
/>

server.js

let htmlHead = `
  ${head.title}
  ${head.meta.toString()}
`;

Спасибо за поддержку

4 ответа

Существующие ответы устарели. Вам не нужно искажать код с помощьюscript атрибуты или innerHTML. Вы можете использовать<script> как обычно в HTML:

<Helmet>
  <script src="https://some.host/api.js" type="text/javascript" />
</Helmet>

Мне нужно вставить в тег HEAD объект JavaScript

Вы можете определить объект во встроенном скрипте, используя innerHTML атрибут на шлем script prop - этот атрибут был представлен в шлеме 3.0.0

<Helmet 
  script={[{ 
    type: 'text/javascript', 
    innerHTML: 'window.yourObject = { it: "works" }' 
  }]} />

Если я правильно понял ваш вопрос, в вашем <Helmet/> декларацию, вы можете добавить в script свойство вводить <script> тег в заголовок HTML ваших страниц.

<Helmet
    title={article.get('title')}
    meta={[
        {"property": "og:title", "content": article.get('title')},
        {"property": "og:url", "content": article.get('url')},

        {"property": "twitter:title", "content": article.get('title')}
    ]}
    script={[
            {"src": "http://url.com/script.js", "type": "text/javascript"}
    ]}
/>

Просто добавьте тег script следующим образом:

      <Helmet>
    <script type="text/javascript">
        {`console.log("Hello World");window.secret = "Tss..."`}
    </script>
</Helmet>
Другие вопросы по тегам