Javascript 在哪里使用AJAX
我正在使用的一个项目中工作,我在数据流方面遇到了一些问题 在每个页面上都有一个AJAX调用,用于获取组件的数据。我一直在将它们放在Javascript 在哪里使用AJAX,javascript,ajax,reactjs,react-router,Javascript,Ajax,Reactjs,React Router,我正在使用的一个项目中工作,我在数据流方面遇到了一些问题 在每个页面上都有一个AJAX调用,用于获取组件的数据。我一直在将它们放在componentDidMount中: // Below code is written in ES6 componentDidMount(){ $.get(someURL, (data)=>{ this.setState({data:data}) }) } 虽然这在初始加载时有效,但在url更改时不会再次调用它(需要手动刷新)。我似乎找不到合
componentDidMount
中:
// Below code is written in ES6
componentDidMount(){
$.get(someURL, (data)=>{
this.setState({data:data})
})
}
虽然这在初始加载时有效,但在url更改时不会再次调用它(需要手动刷新)。我似乎找不到合适的方法来放置AJAX调用
请有人告诉我在React路由器中获取数据的正确方法。经过一番搜索,最终解决了问题 本文件概述了两种解决方案:
addHandlerKey={true}
:
componentWillReceiveProps
而不是componentDidMount
- 我最终使用了两种,
作为初始加载,而componentDidMount
作为后续加载componentWillReceiveProps
- 由于它们共享相同的代码,我创建了一个新函数
,并在两个生命周期中调用它\u updateState
我现在的代码:
class Classes extends React.Component {
componentDidMount(){ this._updateState() }
componentWillReceiveProps(){ this._updateState() }
_updateState(){
$.get(/*Some URL*/, (data)=>{
this.setState({data:data})
})
}
}
你可以在组件Willmount lifeCycle Handler上启动ajax,
README
链接现在已断开。我知道,这是旧的,但是。。勾选这个: