子传父$emit使用报错提示emits

在使用this.$emit()时候,给报的警告

Extraneous non-emits event listeners (addBtn) were passed to component but could not be automatically;


image.png
<template>
//如果在子页面中的template模板中,没有添加div包裹组件内容,就会出现提示
“无关的非发出事件监听器(addBtn)被传递给组件,但无法自动继承,因为组件呈现片段或文本根节点。
如果侦听器仅用于组件自定义事件侦听器,请使用“emits”选项声明它。”

  <!-- <div class="addBox"> -->
    <button @click="add(1)">+1</button> 
    <button @click="add(10)">+10</button> 
  <!-- </div> -->
</template>

# 解决方法:
1. 直接在外面包裹一层div,问题直接解决
2. 在export dafault{
    //数组写法
    emits:['addBtn']
    //对象写法--了解一下即可,平时用不到
    // emits: {
    //   addBtn: function(count) {
    //     if (count <= 10) {
    //       return true
    //     }
    //     return false
    //   }
    // },
}
注册声明一下所有的自定义发出事件,并且注册后也能父页面写自定义事件能友好的提示
# 在template中包裹一层div警告就已经消失,无论是否有报错,自定义组件最好都用emits注册声明一下
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容