$ emit完成时触发事件

时间:2020-05-25 17:29:23

标签: vue.js

我有一个父组件,其中有一个子组件。在子级中单击按钮时,它会发回父级:

   clickevent(data){
            this.$emit('back-to-parent', data);

  }

我的困境是我需要知道何时完成发射,以便我可以执行依赖于它的代码。我尝试过:

        clickevent(data){
           this.$emit('back-to-parent', {data, done: () => { 
                 alert('done') 
             } });
       }

但是我的警报从未触发。我尝试了这些,但它们不起作用https://forum.vuejs.org/t/do-something-after-emit-has-finished-successful/10663

我的发射结束后如何执行代码?谢谢

1 个答案:

答案 0 :(得分:1)

在父组件中:

@back-to-parent="onBackToParent"
...
methods: {
  onBackToParent({ data, done }) {
    // process data
    if (done) {
      done()
    }
  }
}

在子组件中:

clickevent(data){
           this.$emit('back-to-parent', {data, done: () => { 
                 alert('done') 
             } });
       }