Cannot use 'in' operator to sear

2021-01-20  本文已影响0人  200Ok

问题现场

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操作符时,会出现这个错误。

上一篇下一篇

猜你喜欢

热点阅读