Stop receiving events from destroyed child component

后端 未结 3 1153
无人共我
无人共我 2021-02-05 00:43

I have a parent where I can dynamically add child components into.

When child component is added in mount I register a listener for an event

EventBus.$on         


        
3条回答
  •  青春惊慌失措
    2021-02-05 01:41

    When you call $off with just the name of the event, all listeners are removed for the event specified.

    Instead, you want to remove the event only for the component that is listening. your component should look something like this:

    const component = {
      methods:{
        listener(){
          //do something on event
        }
      },
      created(){
        EventBus.$on('content-type-saving', this.listener)
      },
      beforeDestroy(){
        EventBus.$off('content-type-saving', this.listener)
      }
    }
    

    This will remove only the specific listener for the current component.

提交回复
热议问题