<div key={"parent-div"}>
<div key={"child-div-1"}></div>
<div key={"child-div-2"}></div>
<div key={"child-div-3"}></div>
<div key={"child-div-4"}></div>
<div key={"child-div-5"}></div>
</div>
O componente React acima irá transbordar o ponto de vista.
Tarefa: antes que o componente seja renderizado na tela, quero child-div-3
que ele seja rolado para o topo.
Se o div pai for renderizado na tela primeiro e depois a rolagem ocorrer, haverá uma pequena falha visual. É isso que eu quero evitar.
Você quer executar algo antes que a tela seja realmente pintada, mas precisa do resultado da renderização antes de fazer isso. Você pode usar
useLayoutEffect
.useRef
para o div.scrollIntoView
para rolar até o div em um efeito. (Faça isso antes de pintar)Você também pode criar um gancho para isso:
Caixa de areia