@newitem

Почему $emit отправляет 1 событие, а приходит 2?

Привет.
Я хочу по кнопке esc отправлять событие в bus.
Делаю я это так
@keyup.esc="busSend"

 busSend() {
      bus.$emit('tableCell',{
        nodeData:this.nodeData
      })
    }

Выводил console.log перед отправкой, выводится 1 раз.

В другом компоненте начинаю слушать в created и он там уже выдает 2 раза объект data

bus.$on("tableCell", data => {
console.log(data)
      });


я не могу поставить once так как мне надо слушать не единожды данное событие
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ответы на вопрос 2
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Кажется всего два варианта - busSend срабатывает дважды, либо подписка на данное событие происходит дважды. Вставьте перед bus.$on console.log чтобы проверить сколько раз происходит подписка.
Ответ написан
Комментировать
Нужно отписываться в destroyed хуке или перед подпиской:
bus.$off("tableCell")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы