项目场景:
使用 vben admin 框架开发后台系统。
官网地址:https://doc.vvbin.cn/components/introduction.html
问题描述
在当前页面引入Modal弹框组件之后,业务可以正常使用,但是报黄色警告,如下:
[Vue warn]: Component emitted event "register" but it is neither declared in the emits option nor as an "onRegister" prop.
意思是组件触发事件“register”,但它既没有在emit选项中声明,也没有作为“onRegister”prop参数声明。
原因分析:
通常情况下,父组件只有一个register事件,没有其他事件绑定的话,子组件不需要defineEmits接收定义。
如果OrderModal子组件内部做完操作,需要触发父组件的事件,我们就需要在子组件接收该事件,如果只定义一个defineEmits('success'),就会报上面的黄色警告。
父组件:
OrderModal子组件:
解决方案:
我们需要将register事件也在defineEmits中接收一下。如下:
黄色警告就没有啦