Estoy usando la función scrollRestoration de Next.js para restaurar la posición de la página cuando se presiona el botón Atrás. El problema es que no restaura la posición de desplazamiento horizontal de los carruseles en esa página. Así que creé mis propias variables de sesión para rastrear la posición de cada carrusel y restaurarlas al cargar la página. El problema es que SOLO quiero restaurar estas posiciones de desplazamiento si se presionó el botón de avance/retroceso. Si hay un indicador de que se usó scrollRestoration en la página, podría usarlo, de lo contrario, si hay un indicador de que la página fue visitada usando los botones de avance/retroceso, eso también lo resolvería.
¿Algunas ideas?
Nunca hice esto, pero mi instinto sería:
useEffect que se actualice en los cambios derouter.pathNameEso da la vuelta al marco, pero no parece que Next exponga lo que está buscando.
Descubrí cómo determinar si scrollRestoration está configurado para una página.
React.useEffect(() => { const hasScrollHistory = sessionStorage.getItem(`__next_scroll_${window.history.state.idx}`); if (hasScrollHistory) { // do your restore logic here } }, []);