uniapp在使用forEach追加新数据进数组时报错

问题场景

在使用分页时,每次将请求的分页数据追加到要渲染的数组中,使用forEach将分页数据追加时报错:

 Cannot read property 'xxxx' of undefined

报错显示我没有定义该数组,但是我已经定义过了,在forEach中就是无法正常追加数据。
后来发现可能是vue无法动态识别数组长度的问题,参考了其他解决方案:

  • 方法一:使用vue的数组变异方法(push、pop、shift、unshift、splice)来操作数组,可是我使用的就是push方法,还是不管用。
  • 方法二:使用this. s e t 的方式 t h i s . set的方式 this. set的方式this.set(this.array, index, newValue)可是依旧不管用

最后使用for循环代替forEach解决了这个问题,受forEach回调的影响,数组无法动态的识别长度而报错

// data为分页的数据 showData为渲染的数据
addDataToShow(data){
	var len = data.length
    var i
    // 使用for循环添加数据
	for(var i = 0;i < len;i++){
		this.showData.push(data[i])
	}
}
Logo

前往低代码交流专区

更多推荐