vue报错:"TypeError: Cannot read property 'forEach' of undefined"

在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;
},

 

 

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
这个错误是由于在代码中尝试对一个未定义的对象进行循环遍历引起的。根据引用,错误信息"TypeError: Cannot read properties of undefined (reading 'forEach')"出现在遍历一个未定义的对象时。同样,引用也提到了类似的错误信息"TypeError: Cannot read property 'forEach' of undefined",其中函数调用"$table.toggleRowExpansion"引发了该错误。根据引用中的代码,问题可能是由于在循环遍历之前,没有正确地定义和初始化变量导致的。 为了解决这个问题,您可以检查代码中的变量是否被正确地定义和初始化。确保在使用之前对变量进行必要的赋值。另外,还可以使用条件语句(例如if语句)来检查变量是否已定义,以避免遍历未定义的对象。 总结回答:出现"TypeError: Cannot read properties of undefined (reading 'forEach')"错误是因为代码中尝试对未定义的对象进行循环遍历。为了解决这个问题,需要检查代码中的变量是否被正确定义和初始化,并使用条件语句来避免遍历未定义的对象。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Vue TypeErrorTypeError: Cannot read properties of undefined (reading ‘forEach‘)](https://blog.csdn.net/u012392578/article/details/129525155)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [vue.runtime.esm.js:1888 TypeError: Cannot read propertyforEach‘ of undefined at VueComponent.](https://blog.csdn.net/tonysh_zds/article/details/107999199)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值