在vue项目中有一个表格操作需要“获取收藏状态”的方法,其中用到了forEach,

收藏状态

本来还好好的,结果当收藏列表为空时forEach报错了:"TypeError: Cannot read property 'forEach' of undefined" 

具体代码如下:

//获取收藏状态
getSc(items){
   // console.log('对比列', this.scExistingArr,items)
   let _flag = false;
    this.scExistingArr.forEach(e=>{
       if(e.iAutoID == items.iAutoID){
            _flag =  true;
       }
    });
     return _flag;
},

报错原因:forEach是一种array...确定是一个数组才能使用

解决方法: 

1)改为for in 遍历的方式

2)在外出加一层判断,当this.scExistingArr存在为数组的时候再遍历,如下

//获取收藏状态
getSc(items){
   // console.log('对比列', this.scExistingArr,items)
   let _flag = false;
   if(this.scExistingArr){
         this.scExistingArr.forEach(e=>{
            if(e.iAutoID == items.iAutoID){
                _flag =  true;
            }
         });
   };
   return _flag;
},

 

 

Logo

前往低代码交流专区

更多推荐