我试图了解可滚动div中的数据更改时react的行为。
如果新数据包含一些当前可见的项目,则react将管理滚动位置以使那些元素保持可见。
想象一下两组元素:a,b,c,d,e,f,g,h,i和f,g,h,i,j,k,l,m一个容器div,它在垂直的可滚动列表中显示它们,足够大,一次只能显示两个元素。
如果我向下滚动到element f然后更改数据,element f仍然是可见的。我相信这是可行的,因为每个元素都有其自己的唯一密钥。
如果滚动位置为0,则行为会有所不同:呈现新元素后,如果我更改回第一组,则滚动将仍为零,而不是on f。如果尝试此操作,则仅向下滚动一个像素即可正常工作。
这里是一个完整的最小工作示例:https : //codepen.io/depsir/pen/OGGZPd
所以这两个问题:
scrollTop = 0?