重新渲染后保持滚动状态

时间:2018-10-29 11:39:07

标签: reactjs scroll redux

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

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

2 个答案:

答案 0 :(得分:1)

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

getSnapshotBeforeUpdate()显示您正在寻找的种类。

该文档示例将当前滚动位置保存在getSnapshotBeforeUpdate生命周期方法中,然后将传递给snapshot的{​​{1}}值用作恢复滚动位置的最后一个参数。

不需要创建状态来保存滚动位置。

答案 1 :(得分:0)

之所以发生,是因为您要重新渲染复选框的完整列表。

有2种可能的方法:

  1. 仅重新渲染相关复选框
  2. 保存容器的滚动位置,并在重新渲染组件后对其进行更新。

不幸的是,您尚未添加任何代码示例,因此无法共享代码更改。

相关问题