Турболинии Hotwire и проблема со слушателями событий

#ruby-on-rails #turbolinks #hotwire-rails

Вопрос:

Привет, у меня проблема со слушателем событий, я использую turbolinks, мой слушатель выглядит так: document.addEventListener("turbolinks:load", ... когда я впервые посещаю страницу, я получаю в консоли браузера эту ошибку: Uncaught TypeError: Cannot read property 'children' of null . После перезагрузки все работает нормально. Я предполагаю, что это проблема с асинхронностью, но я не знаю, как решить ее разумным способом.

Комментарии:

1. в чем проблема, которую вы пытаетесь решить с помощью своего прослушивателя событий? вполне возможно, что есть другой способ избежать этой ошибки.

2. Я использую прослушиватель событий для переключения классов в css после нажатия на выбранные разделы, и некоторые вещи не загружаются при первом посещении сайта из-за асинхронности.

3. Я бы настоятельно рекомендовал использовать стимул для ваших нужд в Javascript здесь. Стимул предназначен для работы с Hotwire. Это не совсем отвечает на ваш вопрос, но если вы зададите новый вопрос об изменении CSS при нажатии с помощью Hotwire/Turbo/стимула, я могу предоставить пример. См.: стимул. горячая проводка.дев

4. Хорошо, спасибо, тогда я попробую стимул 🙂