Почему мой контроллер Stimulus JS срабатывает дважды?
Итак, у меня есть приложение Rails с установленными webpacker, vue, turbolinks и стимулом js.
Проблема, с которой я столкнулся, заключается в том, что, хотя контроллер импортируется только один раз, и даже если я временно отключу турболинки,
Это происходит только в том случае, если я выполняю обновление (то есть не при первом посещении страницы, а только при перезагрузке страницы).
Как ни странно
Это отстой, потому что мне нужно изменить DOM при инициализации, поэтому я добавляю элементы дважды. Кто-нибудь знает, что вызывает это, и / или решение?
1 ответ
Вероятно, это связано с Turbolinks. При переходе на новую страницу Turbolinks сначала представляет кэшированную версию страницы (первое соединение стимула), а затем заменяет тело фактической запрошенной версией страницы (соединение второго стимула). Подробнее см. Здесь:
https://mrcodebot.com/turbolinks-calls-stimulus-connect-twice/