未捕获TypeError:无法读取未定义的属性'令牌'
问题描述:
我的完整代码是http://pastebin.com/xwJ2zi2y。我试图做的是,当Ajax的refresh_token函数值的值改变时,应该调用order_list函数。当我刷新页面时,它会给出order_list函数的输出一次,但是当它开始间隔refresh_token时,它会在pastebin代码中出现错误“Uncaught TypeError:Can not read property'token of undefine”on line 94。并且没有运行order_list函数,当refresh_token的值发生变化时。 在此先感谢。未捕获TypeError:无法读取未定义的属性'令牌'
答
shouldComponentUpdate帮我解决了这个问题。在渲染函数之前请参阅下面的代码。
shouldComponentUpdate:function(nextProps,nextState){return true; },
我的完整运行代码是http://pastebin.com/xwJ2zi2y。 谢谢
答
您需要在成功回调中存储用法的上下文。这里你的固定功能:
refresh_token : function(){
var self = this;
$.ajax({
type: 'GET',
url: "/order/refresh",
headers: {
Accept : "application/json",
"Content-Type": "application/json"
},
success: function (resp){
var newToken = resp;
console.log(newToken); //it give the value of refresh eg. ["20150925313"]
if(newToken != self.state.token){
self.setState({ token: newToken});
// console.log(this.state.resp);
}
}
});
},
非常感谢你MysterX,这解决了这个错误。但是当令牌值改变时,我仍然无法调用Orderlist组件。 –
嗨MysterX,非常感谢你的帮助,你能帮我找出为什么我的代码不会调用orderlist函数时令牌值的变化。 –
@Amit,对不起,但我没有反应,也没有研究它,所以我不能给你更多的帮助 – MysterX