我正在使用reactjs和es6 WeakMap
将状态映射到特定组件。我这样做是通过使用组件的this
值作为与组件关联的商店的WeakMap
中的键。
当一个react组件从DOM卸载然后重新安装时,重新安装的组件是否会被赋予一个新的 this
上下文?
我从反应组件life cycle文档中推断出在remount上创建了一个新的组件实例,但是没有明确说明是这种情况。如果有反应经验的人能为我澄清这一点,我会很感激。
此外,如果有人认为从概念上将组件映射到我试图做的状态是糟糕的设计,请随时加入。
答案 0 :(得分:1)
卸载组件时,实例将被丢弃并将收集垃圾。当组件再次安装时,它将是一个新实例。
我不确定你的用例是什么,但我认为你可以相当肯定这种情况总是如此,但我认为React会将实例重用为一个例子并非不可能。未来优化。
为什么需要将状态保存在WeakMap中而不是将其存储在层次结构中较高的组件中?