Я строю логи c для действия «отменить удаление». Для этого я использую шину событий, чтобы отправить событие двум не связанным компонентам, например так:
Undo.vue:
`EventBus.$emit(`confirm-delete-${this.category}`, this.item.id);`
Название события (this.category
): на основе реквизитов, исходящих от родителя (ConfirmDeleteModal.vue
) и затем полученных следующим образом:
CategoryA.vue
created() {
EventBus.$on('confirm-delete-category-a', (id) => {
this.confirmDelete(id);
});
и
CategoryB.vue
created() {
EventBus.$on('confirm-delete-category-b', (id) => {
this.confirmDelete(id);
});
Моя проблема: По какой-то причине событие для category-a
отправляется и получает дважды (category-b
работает нормально). Мне приходится постоянно слушать confirm-event
, поэтому я не могу удалить прослушиватель событий после того, как получил событие, или только прослушать $once
. Есть идеи, как решить эту проблему (возможно, с Vuex)? Спасибо!