Javascript 如何从ReactJS中的另一个方法运行ajax调用?
当我在其中一个子组件中选择锚定标记时,它使用onJavascript 如何从ReactJS中的另一个方法运行ajax调用?,javascript,ajax,reactjs,Javascript,Ajax,Reactjs,当我在其中一个子组件中选择锚定标记时,它使用ononClick事件调用pageChange。这很有效。我想调用另一个方法来触发ajax调用以获取页面数据: getPageData(slug){ axios.get('http://ajax-call.com/'+slug) .then((response) => { console.log( response ); }) .catch((error) => { conso
onClick
事件调用pageChange
。这很有效。我想调用另一个方法来触发ajax调用以获取页面数据:
getPageData(slug){
axios.get('http://ajax-call.com/'+slug)
.then((response) => {
console.log( response );
})
.catch((error) => {
console.log(error);
});
}
pageChange(e){
var slug = e.target.getAttribute('data-link');
this.getPageData(slug);
e.preventDefault();
}
我遇到了一个错误
无法读取null的属性“getPageData”
我想我需要将该方法绑定到此
,但我可能走错了方向。您可能只需要像您所说的那样绑定函数。有一个很好的快捷方式可以做到这一点:
pageChange = (e) => {
var slug = e.target.getAttribute('data-link');
this.getPageData(slug);
e.preventDefault();
}
这大致类似于在组件didmount
中绑定它:
componentDidMount() {
this.pageChange = this.pageChange.bind(this);
}
如果你想读更多的话,你会读得更多。
。这个((响应)=>{}
应该是。然后((响应)=>{}
感谢你的捕获。仍然会得到错误,但这有助于防止将来出现错误。谢谢!什么是console.log(这个)
log inpageChange
function?如何将pageChange
设置为在代码处调用?可以使用function.prototype.bind()
将对象绑定为函数体pageChange.bind(/*具有getPageData属性的对象*/)
我实际上刚刚将this.pageChange=this.pageChange.bind(this);
添加到我的componentDidMount()
中,解决了我的问题。谢谢!