重新渲染后保持滚动

Vla*_*hin 6 scroll reactjs redux

我的下拉列表中有很多复选框,因此此容器具有滚动功能。但是,当我单击任何复选框时,它会自行选择\取消选择,然后更改状态。

因此,问题在于,重新渲染后,此容器将返回顶部。是否可以在渲染后保持容器的滚动而不将其保存到状态?

dan*_*die 11

您可以在提交阶段之前保存滚动位置的“快照”。

getSnapshotBeforeUpdate()显示了您正在寻找的内容。

文档示例在getSnapshotBeforeUpdate生命周期方法中保存当前滚动位置,然后使用snapshot传递给的值componentDidUpdate(prevProps, prevState, snapshot)作为最后一个参数来恢复滚动位置。

它不需要根据您的要求创建状态来保存滚动位置。

  • 你能举个使用 getSnapshotBeforeUpdate 的例子吗? (2认同)