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

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

		data() {
			return {
				date: this.getDate(),
				kind: ['养殖物异常', '设备异常', '偷盗', '野生动物', '灾害', '其他异常'],
				kindIndex: 0,
				detail: {},
				done: false,
				imageNames:[]
			}
		},
			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

			loadImage(){
				uni.chooseImage({
					success: (response)=>{
						for(let file of response.tempFilePaths){
						let imageName=file.substring(file.lastIndexOf('/')+1);
						this.imageNames.push(imageName);		
						}
					}
				})
			}

你可能感兴趣的:(腾讯-智慧养殖-前端组,uni-app,vue.js,前端,javascript)