出于某种原因,我需要在两个不同的组件中使用我的CustomMenu组件,但是当我在这两个组件之间或从另一个组件中导航时,React给出了:
警告:无法在未挂载的组件上执行React状态更新。这是一个空操作,但它表明应用程序中存在内存泄漏。要修复,请取消useEffect清理函数中的所有订阅和异步任务。
如何解决此问题?下面是重现错误的简单代码:
https://codesandbox.io/s/antd-playground-forked-1fxmqk?file=/src/index.js
出于某种原因,我需要在两个不同的组件中使用我的CustomMenu组件,但是当我在这两个组件之间或从另一个组件中导航时,React给出了:
警告:无法在未挂载的组件上执行React状态更新。这是一个空操作,但它表明应用程序中存在内存泄漏。要修复,请取消useEffect清理函数中的所有订阅和异步任务。
如何解决此问题?下面是重现错误的简单代码:
https://codesandbox.io/s/antd-playground-forked-1fxmqk?file=/src/index.js
1条答案
按热度按时间1szpjjfi1#
产生错误的原因是您正在“/”处呈现菜单本身。当你到达另一条路时,例如。'/component-one'你再次渲染它。一个简单的解决方法是像这样放置菜单:
这使得菜单始终呈现。然后停止它重新渲染再次删除它的组件,例如:
此外,良好的做法是将组件放置在路由器上的'/'处作为着陆位置,否则除非已经在其中一条路由上,否则不会呈现任何内容。