问题现场
image.png具体报错:
Uncaught TypeError: Cannot use 'in' operator to search for 'showEdit' in true
原因分析:
其实是比较低级的一个错误,方法传参错误。
项目使用框架是vue,定位到具体报错代码是这个位置,在click
事件绑定的方法中,我只传递了一个参数。
<div @click="changeShowStatus(true)">{{row.content}}</div>
changeShowStatus
方法如下, 功能是给row
的对象的showEdit
设置一个值,但是只传递了一个参数true
, 漏写了需要传递的第一个参数。
当我用$set
试图给row
的showEdit
属性设置值时,函数内部会使用in
操作符检查showEdit
是否存在对象的属性中,但因为我传参错误,这里row
其实是我传入的ture
,并不是json对象:
changeShowStatus(row, isShow) {
this.$set(row, 'showEdit', isShow);
}
同类型错误
var obj = 'object';
if ('a' in obj){
.....
}
这个类型错误大致原因就是,in操作后跟的数据类型并不是一个json对象。当对非json对象使用in操作符时,会出现这个错误。
网友评论