uni.app的uni-popup:this.popup.disableMask is not a function

 出现这个错误是因为popup.js中getParent()方法中name是'uniPopup',u是小写的,而下面parent.$options.name获取到的是的是'UniPopup',而所有返回的是false,this.popup是false,里面什么都没有

	
//这个时popup.js文件,uni-popup-dialog就是引入的这个
created(){
        //this.popup为false
		this.popup = this.getParent()
	},
	methods:{
		/**
		 * 获取父元素实例
		 */
		getParent(name = 'uniPopup') {
			// debugger
			let parent = this.$parent;
			let parentName = parent.$options.name;
            
			while (parentName !== name) {
				parent = parent.$parent;
                //这里的判断是parent为空时直接返回了false,所有无法执行到return 
				if (!parent) return false
				parentName = parent.$options.name;
			}
			// debugger
            //无法运行到这里,所有return无法执行
			return parent;
		},
	}
}
//所以uni-popup-dialog内无法访问到this.popup数据

看详情

//只需要将name = 'uniPopup'修改为name = 'UniPopup'
//另外可在uni-popup-dialog.vue文件中将
//"this.popup.disableMask()"和"this.popup.closeMask()"
//替换为"this.popup.mkclick = false;"和"this.popup.maskShow = false;"
//就不会报错了

猜你喜欢

转载自blog.csdn.net/w_z_bin/article/details/130322387
今日推荐