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

问题描述 投票:-1回答:1

当我们创建了具有相同react组件的多个实例时,除非将所有实例从显示中移除,否则不会调用componentWillUnmount。可以吗?

reactjs lifecycle
1个回答
0
投票

我发现了问题。就我而言,我们有一个容器,该容器根据数组的内容显示组件。

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

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

当渲染被调用时,该组件被重新创建,但是新类型和键都为0。

由于先前和新创建的组件的键都为0,所以不会调用componentDidMount和componentWillUnmount方法。

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

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.