programing

Vue.js: 이벤트버스가 여러 번 호출됨

prostudy 2022. 6. 3. 22:28
반응형

Vue.js: 이벤트버스가 여러 번 호출됨

178,667원 -

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송신과 수신을 2회 실시합니다(category-b정상적으로 동작합니다).저는 이 노래를 들어야 해요.confirm-event지속적으로 이벤트를 수신한 후 이벤트 청취자를 제거할 수 없거나 청취만 할 수 없습니다.$onceVuex를 사용하여 이 문제를 해결할 수 있는 방법이 있습니까?감사합니다!

저도 같은 문제에 직면해 있었고, 몇 가지 조사 끝에 이 해결책을 찾았습니다.

컴포넌트(카테고리 A)를 정의했습니다.vue) 어플리케이션에서 두 번 실행되어 기능이 두 번 실행됩니다(이 경우 카테고리 A).표시하다

솔루션:created() Like 뒤에 destrated()를 호출해야 합니다.

created() {
    EventBus.$on('confirm-delete-category-a', (id) => {
      this.confirmDelete(id);
    }),
 destroyed() {
            EventBus.$off('confirm-delete-category-a');
        },

언급URL : https://stackoverflow.com/questions/60390944/vue-js-eventbus-being-called-multiple-times

반응형