从reactjs教程,在ajax回调的结尾有.bind(this)的目的是什么?代码能否正常工作没有它?
data: JSON.stringify({text: text}),success: function (data) { this.setState({data: data}); }.bind(this),
它确保这将是回调中正确的对象。见
Function.prototype.bind()。
反应的具体选择是:
myAjaxFunction: function(){ $.getJSON('/something',this.handleData); },handleData: function(data){ this.setState({data: data}); }
这是因为React处理组件方法的绑定。
如果你运行你的原始代码没有绑定,你会得到这个错误:TypeError:undefined不是一个函数,因为这===窗口中的回调;
或在严格模式:TypeError:无法读取属性’setState’未定义,其中此===未定义在回调。