大家好...我是一名 Angular 高级开发人员,正在开发一个新的 React 应用程序(我正在学习)。有一个概念我觉得我不明白。
站点地图:仪表板 > 主页
当我从仪表板访问首页时,如这段代码所示,useEffect() 挂钩会完成其工作并触发刷新页面(),但如果我来回访问,首页 api 调用就会堆积起来。 ..从 2 到 4、6 等 请注意:仪表板页面具有相同的 useEffect() 但正如您从屏幕截图中看到的那样,不会堆积请求。
据我了解,有两种可能性: 1- useEffect() 中的匿名函数保留在内存中并且永远不会被释放 2-页面中的某些内容保留在内存中并触发 useEffect()
我该如何解决这个问题?
React 18 及更高版本使用“严格模式”。 “当严格模式打开时,React 将在第一次真正的设置之前运行一个额外的仅开发设置+清理周期。这是一个压力测试,可确保您的清理逻辑“镜像”您的设置逻辑,并停止或撤消任何操作如果这导致问题,请实施清理功能。”来源
有关严格模式的更多信息: https://react.dev/reference/react/StrictMode。
我不能确定是什么导致你的 useEffect 钩子继续增量运行,但有一些解决方案。
希望这有帮助!