为什么 componentWillUnmount 在下一个组件 componentWillMount 之后触发?

Why is componentWillUnmount firing after next components componentWillMount?

我有一个包含两个组件的 React/Redux 应用程序。当第一个组件卸载时,我需要清除一部分 redux 状态,因为第二个组件将以该形式出现状态错误。我试图在第一个组件卸载时分派一个清除状态块的操作,但第二个组件在第一个组件 componentWillUnmount 方法被调用之前开始安装。当我在 redux-logger 中查看分派的操作时,我看到第二个组件从 componentWillMount 分派操作,然后从前一个组件调用 componentWillUnmount 分派操作。

这不是预期的行为,是吗?我也在使用 react-router v4。谢谢!

Since React v16componentWillUnmount 钩子可以异步触发。

这意味着您不能对这些挂钩跨组件调用的顺序(或时间)做出任何假设。