我使用reactjs和es6 WeakMap
将状态映射到特定组件。我通过使用组件的 this
值作为与该组件关联的存储的 WeakMap
中的键来实现此目的。
当 React 组件从 DOM 卸载然后重新挂载时,重新挂载的组件是否会被赋予一个新 this
上下文?
我从 react 组件 life cycle 中推导出来文档表明在重新安装时会创建组件的新实例,但并未明确说明情况如此。如果有更多 react 经验的人能为我澄清这一点,我将不胜感激。
此外,如果有人认为按照我尝试的方式从概念上将组件映射到状态是糟糕的设计,请随时插话。
最佳答案
当组件被卸载时,实例将被丢弃并被垃圾收集。当组件再次安装时,它将是一个新实例。
我不确定你的用例是什么,但我认为你可以相当确定情况总是如此,但也不是不可能认为 React 将来会重用实例作为优化。
为什么需要将状态保存在 WeakMap 中,而不是将其存储在层次结构中更高的组件中?
关于javascript - React.js 'this' 的组件上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29880800/