Javascript 为什么不';我们不能在render方法中编写axios.get(blabla)吗?
我们为什么不写信呢Javascript 为什么不';我们不能在render方法中编写axios.get(blabla)吗?,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我们为什么不写信呢 axios .get('https://rallycoding.herokuapp.com/api/music_albums') .then(response => this.setState({ albums: response.data })); 在render方法中,是否必须将其放入componentWillMount 如果我们把它放在render方法的开头,会有什么问题 我将它放入渲染中,得到了相同的结果,但是教程说它应该在组件中安装一般来说,两者之间
axios
.get('https://rallycoding.herokuapp.com/api/music_albums')
.then(response => this.setState({ albums: response.data }));
在render
方法中,是否必须将其放入componentWillMount
如果我们把它放在render
方法的开头,会有什么问题
我将它放入
渲染
中,得到了相同的结果,但是教程说它应该在组件中安装
一般来说,两者之间的区别在于您希望发出此请求的次数
如果您希望请求仅在第一次装入组件时发生,您将使用ComponentWillMount
(更好)
如果希望请求在每次渲染时发生(不鼓励),则使用render
方法
在您的情况下,将其放入render
方法实际上会导致无限递归,因为每个请求调用setState
,这将导致重新呈现,这将使调用setState
的请求导致重新呈现
更不用说性能上的成本以及如此频繁的请求造成的网络拥塞了
类示例扩展了React.Component{
构造函数(){
超级()
此.state={
柜台:0
}
}
render(){
//假异步操作作为请求
设置超时(()=>{
const{counter}=this.state;
这是我的国家({
柜台:柜台+1
})
}, 500)
返回React.createElement('h3',null,this.state.counter)
}
}
ReactDOM.render(
React.createElement(示例),
document.querySelector(“#示例”)
)
永远重新渲染
一般来说,两者的区别在于您希望发出此请求的次数
如果您希望请求仅在第一次装入组件时发生,您将使用ComponentWillMount
(更好)
如果希望请求在每次渲染时发生(不鼓励),则使用render
方法
在您的情况下,将其放入render
方法实际上会导致无限递归,因为每个请求调用setState
,这将导致重新呈现,这将使调用setState
的请求导致重新呈现
更不用说性能上的成本以及如此频繁的请求造成的网络拥塞了
类示例扩展了React.Component{
构造函数(){
超级()
此.state={
柜台:0
}
}
render(){
//假异步操作作为请求
设置超时(()=>{
const{counter}=this.state;
这是我的国家({
柜台:柜台+1
})
}, 500)
返回React.createElement('h3',null,this.state.counter)
}
}
ReactDOM.render(
React.createElement(示例),
document.querySelector(“#示例”)
)
永远重新渲染
好的,您将在每次重新渲染时提交一个请求,并且您不应该在渲染中设置状态,或者在渲染中的异步函数回调中设置状态。好的,您将在每次重新渲染时提交一个请求,并且您不应该在渲染中设置状态,或者在渲染中的异步函数回调中设置状态。