question = {
quest : "How old am I?",
answers : [17,18,20,25],
correct : 17,
}
checkAnswer(){
var usersAnswer = document.getElementById('ans-1').textContent;
var answer = this.question.correct;
if(usersAnswer==answer){
alert('correct')
}else{
alert('u lost')
}
}
使用此代码,我无法从ReactJS中的事件处理程序访问对象。 我收到此错误:
TypeError:无法读取
question
的属性undefined
P.S我是乞gg
答案 0 :(得分:1)
该错误是由于错误的this
绑定引起的。您可以使用Arrow Function
checkAnswer = () => {
var usersAnswer = document.getElementById('ans-1').textContent;
var answer = this.question.correct;
if(usersAnswer==answer){
alert('correct')
}else{
alert('u lost')
}
}
您也可以使用Function.prototype.bind()
代替箭头功能。您只需要添加this.checkAnswer.bind(this)
。而是在this.checkAnswer.bind
设置处理程序的位置