问题:对数组元素进行排序后,滚动位置将丢失。一个有趣的事实是,那些被移动到数组末尾的元素的位置丢失了。
问题:如何在对元素数组进行排序时不丢失滚动位置?
复制步骤:
- 更改每个DOM元素的滚动位置
- 按下";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