|
|
1
0
不确定这是否是正确的猜测,但这可能与strictmode有关吗?如果你发表评论
编辑: 很高兴我能帮忙! 我对react-strict模式做了一些研究,并想在这里分享我的发现。严格模式可以帮助您在开发模式下调试代码(它对生产没有影响,所以如果您发现组件渲染两次,就不用担心)。一般来说,打开它被认为是最佳做法,因为它将有助于检测不推荐使用的代码并发现不必要的副作用。 不 在传统意义上卸载(从组件树中删除),但只是对用户隐藏。React仍然会调用相同的旧卸载函数来告诉组件它正在被隐藏,但它也会保存其状态,以将组件恢复到与以前相同的屏幕上。这意味着,如果某个效果没有正确清理订阅,其状态仍然存在,并且react saved状态将添加到Reender的顶部。
进一步阅读: 在上有一个非常有趣的帖子 https://github.com/reactwg/react-18/discussions/19 当然,文件: https://reactjs.org/docs/strict-mode.html#ensuring-reusable-state |