VM1550 installHook.js:1860 在控制台中记录为双行

Ali*_*ara 11 javascript frontend web reactjs

我正在使用反应应用程序并构建一个简单的应用程序。当我使用 {console.log('')} 方法在控制台上记录某些内容时,控制台上会出现第二条日志,它似乎来自第 1860 行的文件名 {installHook.js}。我已经尝试过寻找它,但我没有找到。我很好奇为什么会发生这种情况。

我已经尝试过寻找它,但没有找到。我很好奇为什么会发生这种情况。

Pau*_*oll 18

其他答案是说“删除 StrictMode”,但甚至没有考虑可能产生的副作用。

严格模式将帮助您清除由不纯渲染和效果清理引起的常见错误。

然而,这会带来明显的副作用:

  • 您的组件将重新渲染额外的时间来查找由不纯渲染引起的错误。
  • 您的组件将重新运行 Effects 一段额外的时间,以查找因缺少 Effect 清理而导致的错误。
  • 将检查您的组件是否使用了已弃用的 API。

重新渲染当然要对重复的日志输出负责。

还需要注意的是,这并不影响生产,只会影响开发构建。

虽然我不能说“删除 StrictMode”的建议是危险的,但我当然会认为,当您想要创建高质量的应用程序时,这不是最好的决定。根据我的经验,越早启用严格的调试、编译和 lint 检查,从长远来看效果就越好。思考“哦,我们可以稍后再做”会导致非常头痛,有时甚至会导致难以克服的大量重构。

好吧,老头说得够多了……它能修好吗获得 StrictMode 的好处吗?!

是的。

Bobbyhadz提到React DevTools有一个选项(见下文)在 StrictMode 下禁用日志的双重渲染。

在此输入图像描述

这个故事的寓意是……不要因为头很热就停止戴摩托车头盔!

希望这个建议对某人有所帮助,祝你有美好的一天!


小智 5

我遇到过同样的问题。如果你注释掉该React.StrictMode行就会消失。