除非从显示中删除同一组件的所有实例,否则不会调用 componentWillUnmount。是预期的吗?

componentWillUnmount not getting called un less all instances of a same component are removed from display. is it expected?

当我们创建了同一个 React 组件的多个实例时,componentWillUnmount 不会被调用,除非所有实例都从显示中移除。是否符合预期?

我发现了问题。在我的例子中,我们有一个容器,它根据数组的内容显示组件。

数组中的索引用作组件的键。数组中的元素根据网络通信进行更改。

所以最初创建了一个特定类型的组件,键为 0。当我们从网络接收到通信时,我们从数组中删除上述类型并添加一个新类型。

调用渲染时,将重新创建组件,但新类型和键是相同的 0。

由于前一个组件和新创建的组件的键是相同的 0,因此不会调用 componentDidMount 和 componentWillUnmount 方法。

一旦我将键从索引更改为组件类型,问题就解决了。将来可能会帮助任何遇到类似问题的人。

谢谢