美文网首页
Cannot use 'in' operator to sear

Cannot use 'in' operator to sear

作者: 200Ok | 来源:发表于2021-01-20 12:35 被阅读0次

问题现场

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试图给rowshowEdit属性设置值时,函数内部会使用in操作符检查showEdit是否存在对象的属性中,但因为我传参错误,这里row其实是我传入的ture,并不是json对象:

    changeShowStatus(row, isShow) {
      this.$set(row, 'showEdit', isShow);
    }

同类型错误

  var obj  = 'object';
  if ('a' in obj){
    .....
  }

这个类型错误大致原因就是,in操作后跟的数据类型并不是一个json对象。当对非json对象使用in操作符时,会出现这个错误。

相关文章

网友评论

      本文标题:Cannot use 'in' operator to sear

      本文链接:https://www.haomeiwen.com/subject/vsckzktx.html