组件安装时,我正在从后端api获取数据,并且可以成功完成该操作,但是我的React应用程序不断向服务器发送请求,导致其速度变慢。我使用过useEffect挂钩,但是不使用挂钩就得到了相同的结果。

useEffect(() => {
   axios.get('http://127.0.0.1:8000/food_category/')
  .then(response => {
   setFoodCategory(response.data);
   console.log(response.data);
})});


我究竟做错了什么?

最佳答案

如果您不对useEffect挂钩提供任何依赖关系,它将在每次组件渲染时执行(这将无限期发生,因为您在获取数据后设置了状态,从而使组件重新渲染)。

查看docsuseEffect的第二个参数以了解更多信息。

空的依存关系数组表示useEffect将充当装载,并且仅执行一次。

useEffect(() => {
    // Do mount stuff here such as executing your request.
}, []);

关于javascript - React/Axios发送无限数量的请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59301014/

10-12 01:09