vue에서 리셋 함수를 사용하면this 호출이 잘못되었습니다.
//updateStudentInfoToServer는 자체 부분의 데이터를 비동기적으로 업로드하는 인터페이스로 세 개의 매개 변수를 수신하는데 그 중에서 첫 번째는 데이터이고 두 번째, 세 번째는 함수이며 두 번째, 세 번째 함수는 function(){} 형식으로 쓴다
updateStudentInfoToServer:function(data, networkOk, networkError){
let postData = this.$qs.stringify({
data:data
})
this.axios.post('/api/update/updateStudentInfo',
postData
).then(res=>{
console.log(' return : ')
console.log(res)
networkOk(res) //
}).catch(error=>{
console.log(error)
networkError(error) //
})
console.log('axios done')
},
this.updateStudentInfoToServer(data, function(res){
console.log('return ok')
console.log(res)
// console.log('self')
// console.log(self) // this
// console.log('this')
// console.log(this) //undefined
self.handleCancelEdit()
},function(error){
console.log(error)
}
)
네트워크 데이터를 제출하는 것은 비동기적으로 호출되기 때문에 먼저 되돌아온 후에야 성공하고 실패한 리셋을 실행할 수 있습니다.이런 쓰기 방식,function의 역할은function의 코드 블록에서this를 사용하여 vue 데이터에 설정된 변수를 변경할 수 없음을 결정합니다
es6의 화살표 문법을 사용하면this의 어디서나 호출할 수 있습니다
this.updateStudentInfoToServer(this, res=>{
console.log('return ok')
console.log(res)
console.log('self')
console.log(self)
console.log('this')
console.log(this)//this self
}, error=>{
console.log(error)
}
)
그러나 일부 브라우저의 일부 버전은 es6의 문법을 지원하지 않기 때문에 여러 가지 문제를 초래할 수 있습니다보충 지식: vue는 전역 함수에 리셋하고 vue 파일의 함수를 호출합니다
전역 함수는 파일 globalFunc를 작성할 수 있습니다.js
exports.install = function(Vue, option){
Vue.prototype.setData = function(that, key){
that[key] = '222'
}
Vue.prototype.testCallMe = function(str){
console.log('test call me' + str)
}
Vue.prototype.testCallBack = function(func, param){
func(param)
this.testCallMe('tetetet')
}
}
main.jsimport globalFunc from '@/components/globalFunc'
Vue.use(globalFunc)
vue 파일
호출
this.testCallBack(this.test,'yui0')//전역 함수를 사용하여 vue 파일의 함수를 호출하고 vue 파일의 데이터를 수정합니다.
this.setData(this,'msg')//전역 함수로 vue 파일의 데이터 수정
test 함수 작성
test:function(str){
this.msg = '233' + str
},
이상의 이 편은 vue에서 리셋 함수를 사용합니다.this 호출이 무효한 해결은 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.