解决:使用$listeners

$listeners用于记录父组件传给子组件的所有方法数组。

onBeforeScan(){
	let _this = this;
	console.log(_this.$listeners,"方法")
	if(_this.$listeners['beforeScan']){
		// 如果有提供执行$emit这里
	   _this.$emit("beforeScan",(val)=>{
		   //这里是回调
		   	if(val){
		   		_this.turnUpScan();
		   	}
	   });
	 }else{
		 // 没有就直接调起扫码
	     _this.turnUpScan();
	 }
},

调用

<!--这里没有传beforeScan-->
<scan @success="scanSuccess" ></scan>
<!-- 这里传了beforeScan方法 -->
<scan @success="scanSuccess" @beforeScan="handleBefore" ></scan>

输出$listeners的结果:
在这里插入图片描述

Logo

前往低代码交流专区

更多推荐