Почему мой контроллер Stimulus JS срабатывает дважды?

Итак, у меня есть приложение Rails с установленными webpacker, vue, turbolinks и стимулом js.
Проблема, с которой я столкнулся, заключается в том, что, хотя контроллер импортируется только один раз, и даже если я временно отключу турболинки, функция вместе с один звонят дважды.
Это происходит только в том случае, если я выполняю обновление (то есть не при первом посещении страницы, а только при перезагрузке страницы).
Как ни странно звонят только один раз (когда я ухожу со страницы)

Это отстой, потому что мне нужно изменить DOM при инициализации, поэтому я добавляю элементы дважды. Кто-нибудь знает, что вызывает это, и / или решение?

1 ответ

Вероятно, это связано с Turbolinks. При переходе на новую страницу Turbolinks сначала представляет кэшированную версию страницы (первое соединение стимула), а затем заменяет тело фактической запрошенной версией страницы (соединение второго стимула). Подробнее см. Здесь:

https://mrcodebot.com/turbolinks-calls-stimulus-connect-twice/

Другие вопросы по тегам