对数组元素排序后,DOM元素中的滚动位置丢失



问题:对数组元素进行排序后,滚动位置将丢失。一个有趣的事实是,那些被移动到数组末尾的元素的位置丢失了。

问题:如何在对元素数组进行排序时不丢失滚动位置?

复制步骤

  1. 更改每个DOM元素的滚动位置
  2. 按下";btn反向";按钮

当前行为:第一个元素保存滚动位置。第二和第三元素重置滚动位置。

预期行为:所有元素都必须保留其滚动位置。

示例代码(滚动所有DOM元素并按"btn-reverse"):https://stackblitz.com/edit/react-d2raex?file=src%2FApp.js

对于您正在使用的key,您要求List组件在不同的位置呈现相同的DOM节点。它必须移除它们才能做到这一点。DOMElement接口不提供任何API来对元素进行重新排序。

此处的原始讨论:https://github.com/facebook/react/issues/24640

最新更新