Я создаю новое приложение React 16.5 с Redux и хочу интегрировать некоторые сторонние сервисы для аналитики и отслеживания ошибок. На данном этапе я не хочу использовать их плагины npm или реагировать, а просто хочу выполнить интеграцию через чистый JS.
Все они требуют загрузки библиотеки, которую я делаю в разделе <head> вне моего пакета приложения React, а затем какой-то функции init(), которая должна вызываться при загрузке страницы.
Раньше я всегда вызывал эти функции инициализации в componentWillMount моего компонента верхнего уровня, потому что эта функция гарантированно запускалась. Однако я заметил, что теперь это устарел.
Как лучше всего инициализировать библиотеки аналитики в React 16.x?
Я не хочу делать это в componentDidMount, потому что, если сразу возникнут какие-либо ошибки и компонент никогда не монтируется, я не получу никаких просмотров страниц или отчетов об ошибках.
Должен ли я просто инициализировать их вне всех моих компонентов в App.jsx? Пожалуйста, дайте мне знать, если я что-то упускаю. Спасибо!
Да, но, например, с Sentry: docs.sentry.io/error-reporting/quickstart/?platform=browser. Куда мне вызвать Sentry.init?
так что он раскрывает Sentry, и да, вы должны вызвать его функцию init в App.jsx
Я думаю, это нужно сделать в index.js перед инициализацией хранилища и вызовом ReactDOM.render
Вы проверяли реакцию-шлем? Мы используем его в продакшене в сочетании с промежуточным программным обеспечением, которое запускается при инициализации приложения, как предлагал @Valerii. Вы можете создать компонент, который включает в себя все сценарии, которые вам нужно загрузить в голову, а также можете добавить его к другим компонентам, если вам нужно обновить или добавить сценарий.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


обычно пакет аналитики предоставляет глобальные переменные, например GA выставляет
ga