组件安装时,我正在从后端api获取数据,并且可以成功完成该操作,但是我的React应用程序不断向服务器发送请求,导致其速度变慢。我使用过useEffect挂钩,但是不使用挂钩就得到了相同的结果。
useEffect(() => {
axios.get('http://127.0.0.1:8000/food_category/')
.then(response => {
setFoodCategory(response.data);
console.log(response.data);
})});
我究竟做错了什么?
最佳答案
如果您不对useEffect
挂钩提供任何依赖关系,它将在每次组件渲染时执行(这将无限期发生,因为您在获取数据后设置了状态,从而使组件重新渲染)。
查看docs中useEffect
的第二个参数以了解更多信息。
空的依存关系数组表示useEffect
将充当装载,并且仅执行一次。
useEffect(() => {
// Do mount stuff here such as executing your request.
}, []);
关于javascript - React/Axios发送无限数量的请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59301014/