说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!
问题描述
在主页面通过this.$bus.$emit
发送事件传递参数到子页面,子页面在进行form
表单验证事,校验不成功的情况,提示Error in v-on handler: “TypeError: Cannot read properties of undefined (reading ‘length’)”,如下图所示
解决方法
首先点击控制台中提示的错误代码行查看代码,发现密码校验时,传递的value
的值是undefined
未定义的,那么此类型是没有length
方法的,所以出错了
这个错误从字面意思和自己打印调试也很容易明白,但是这里我们只知道是传递的value
值类型错误导致的,还需要去代码走查看看是传递错误还是赋值错误,于是在发送事件时console.log
输出下数据,来判断是否传递了password
,结果发现并没有传递
既然发送事件时没有传递password
参数,那么就回到监听页面看是否有获取传递password
参数,如果有的话,那么就会出现undefined
的情况,结果发现这里去获取了password
当出现
undefined
的情况时,大多数都是未定义或者传递参数不存在导致的,因为password
默认值为空String,所以删除这行代码后问题解决~