Как я могу добавить функцию скрипта в React

Я пытаюсь добавить внешнее приложение Chameleon в свое приложение для реагирования, и для этого мне нужно добавить функция javascript в свое приложение.

Я хочу, чтобы он вызывался только в определенных ситуациях, поэтому я не хочу загружать его в свой index.html. Я попытался добавить его в функцию render моего компонента как:

render() {
  return(
    <div>
     <head>
      <script type = "text/javascript">/* Chameleon - better user onboarding */!function(t,n,o){var a = "chmln",c = "setup identify alias track clear set show on off custom help _data".split(" ");n[a]||(n[a] = {}),n[a].accountToken=o,n[a].location=n.location.href.toString();for(var e=0;e<c.length;e++)!function(){var t=n[a][c[e]+"_a"]=[];n[a][c[e]]=function(){t.push(arguments)}}();var s=t.createElement("script");s.src = "https://fast.trychameleon.com/messo/"+o+"/messo.min.js",s.async=!0,t.head.appendChild(s)}(document,window,"TOKEN");
         chmln.identify(USER.ID_IN_DB, {     // Unique ID of each user in your database (e.g. 23443 or "590b80e5f433ea81b96c9bf6")
            email: USER.EMAIL });
      </script>
      ...
      ...
     </head>
    </div>
  )
}

Но вышеописанное не работает. Я пробовал то же самое в шлеме, но не повезло. Оба они показывают ошибку для

SyntaxError: Unexpected token

Есть ли способ загрузить эту функцию в определенный компонент или мне нужно сделать это в index.html?

🤔 А знаете ли вы, что...
JavaScript можно использовать для создания ботов и автоматизации задач в браузерах с помощью Puppeteer.


1
2 323
1

Ответ:

Решено

Похоже, у вас сильное непонимание того, для чего нужна реакция и как она используется.

1) На странице должен быть только 1 элемент head, и он должен быть в index.html, а не в отображаемом выводе компонента.

2) Наличие компонента, отображающего тег <script>, противоречит смыслу использования реакции.

Что вам нужно сделать, это import код, который вам нужен в вашем компоненте:

import './path/to/file.js'

И затем оттуда chmln должен быть доступен на window объекте

window.chmln.identify()

Интересные вопросы для изучения

Воспроизвести анимацию ключевого кадра при первом нажатии и воспроизвести в обратном порядке при второмНе удается удалить прослушиватель при замене горячего модуляИзмените вложенные объекты на тот же объект, чьи значения, которые являются объектами, являются объектами с родителями в качестве прототипаКак я могу правильно связать свой javascript с моей html-формой?Ответ API в атрибуте customData V-CalendarОбработка ввода динамического текста с одним обработчиком onChange и без свойств имени в React JSКопирование объекта React State; изменение скопированного объекта изменяет состояние объектаЗначение в поле INPUT не может храниться в состоянии ReactОшибка с кодом 405 при использовании axios для вызова контроллера API в основном приложении asp.netПользовательский интерфейс материала, обязательный атрибут отправки формы не проверяется внутри другого файла?