javascript - 在 React 中 Axios GET 请求出现 ERR_INSUFFICIENT_RESOURCES 错误

标签 javascript reactjs axios

我有一个 mongoDB,其中包含商店中的商品。使用 React,我想根据数据库中的每个条目呈现项目卡。就此而言,我使用 Axios 为我的服务器发送 GET 请求,该请求将处理从数据库中提取数据。

我的 React 代码是这样的:

import React, { useEffect, useState } from 'react';
import axios from "axios";

function App() {
const [items, setItems] = useState([{}]);
useEffect(() => {
    axios.get('/item').then(res => {
       (res.data).forEach(entry => {
           setItems(prevItems => {
               return [...prevItems, entry];
           })
       });
    }).catch(err => console.log(err));
})

return (
    ...
)
}

我已成功获取数据,但在我的 Chrome 控制台中,我不断收到 ERR_INSUFFICIENT_RESOURCES 错误,最终导致 Chrome 崩溃。为什么会发生此错误?我正在使用 useEffect() 因为 React 文档说它等同于功能组件中的 componentDidMount() 。我可以使用什么替代方案?

编辑:当我删除 useEffect() 时,错误不断出现并使用 React 开发工具,我看到在项目中我有 80 个条目,这意味着请求被触发了 10 次以上,我不明白如何。

谢谢!

最佳答案

您在每次渲染后发出请求。 添加 [] 作为 useEffect() 的第二个参数,以便在第一次渲染后发出一次请求。

const [items, setItems] = useState([{}]);
useEffect(() => {
    axios.get('/item').then(res => {
       setItems(res.data)
    }).catch(err => console.log(err));
}, [])

关于javascript - 在 React 中 Axios GET 请求出现 ERR_INSUFFICIENT_RESOURCES 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65114035/

相关文章:

reactjs - React Context API 与 Typescript Generic

javascript - 如何在 React 中将 props 传递给 child 的 child ?

javascript - 在这种情况下,有什么替代方法可以替代 eval() 呢?还有其他选择吗?

axios - 如何从 Axios 获取响应时间

javascript - 将函数参数传递给 axios 调用

javascript - 日期时间选择器不工作。看不懂js怎么写

Javascript 将表格单元格从一行的末尾更改为自己的表格行 - 这可能吗

javascript - 获取存在的成员数量 'Online' DiscordJS

javascript - 给定一个合并数组,使用 JS 将其拆分为单独的数组

javascript - Pino 错误日志为空,尽管错误对象包含信息