Vue.js中的[system]TypeError: Cannot read property ‘push‘ of undefined

2023-08-14 09:48:18 浏览数 (2)

我在uni-app中写一下代码时出现问题[system]TypeError: Cannot read property 'push' of undefined

代码语言:javascript复制
		data() {
			return {
				date: this.getDate(),
				kind: ['养殖物异常', '设备异常', '偷盗', '野生动物', '灾害', '其他异常'],
				kindIndex: 0,
				detail: {},
				done: false,
				imageNames:[]
			}
		},
代码语言:javascript复制
			loadImage(){
				uni.chooseImage({
					success: function(response){
						for(let file of response.tempFilePaths){
						let imageName=file.substring(file.lastIndexOf('/') 1);
						this.imageNames.push(imageName);		
						}
					}
				})
			}

明明是数组却没有push功能这是为何

原因是此时的this不再指向全局对象,而是指向该函数,改用箭头函数可以继续使用全局的this

代码语言:javascript复制
			loadImage(){
				uni.chooseImage({
					success: (response)=>{
						for(let file of response.tempFilePaths){
						let imageName=file.substring(file.lastIndexOf('/') 1);
						this.imageNames.push(imageName);		
						}
					}
				})
			}

0 人点赞