0

我第一次使用 react-table v7。我的行中有有状态的组件——本质上是每行中有一个有状态的键/值选择器(当然是在一个单元格内)。

我注意到当表的状态发生变化时,整个渲染树会卸载并重新安装 - 例如,如果我选择一行或以编程方式插入新行。这当然会导致我的有状态组件被重新安装和重新初始化。

我陷入了困境,试图解释为什么会发生这种情况。这不是非常可取或必要的,实际上为什么会发生。有人知道吗?

https://codesandbox.io/s/goofy-ives-4cq9s

4

1 回答 1

0

恐怕你是对的,调试方法是如此可疑,这实际上是问题的原因!

抛开所有的笑话不谈,问题在于DebugUnmount每次App调用函数体时都会重新创建组件。

这意味着因为它是一个新DebugUnmount功能,React 将它视为一个完全不同的组件,并且会卸载旧的并重新安装新的,因为根据 React 的差异引擎,它是一个全新的子树。

这是相同的代码框,但内部组件不再在每次渲染时重新创建:

https://codesandbox.io/s/intelligent-moon-ku89t?file=/src/App.js

于 2021-04-30T17:33:04.790 回答