es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Restauración del desplazamiento en el cambio de página no se desplaza completamente hacia arriba.

Restauración de desplazamiento hace que la página se desplace 8/10 partes hacia arriba, pero no completamente. No estoy seguro si mi componente ScrollToTop está fallando o si estoy utilizando incorrectamente las etiquetas de ruta y switch en el componente App. A continuación se muestran los componentes ScrollToTop y App respectivamente.

import { useEffect } from "react";
import { useLocation } from "react-router-dom";

function ScrollToTop() {
  const { pathname } = useLocation();

  useEffect(() => {
    window.scrollTo(0, 0);
  }, [pathname]);

  return null;
}

export default ScrollToTop;
return (
    <div classname="App">
      <switch>
        <route path='/explore'>
          <scrolltotop></scrolltotop>
          <layout classname='' currentuser="{currentUser}" posts="{posts}" handlelogout="{handleLogout}">
            <explore posts="{posts}"></explore>
          </layout>
        </route>
        <route path='/meta'>
          <scrolltotop></scrolltotop>
          <layout currentuser="{currentUser}" posts="{posts}" handlelogout="{handleLogout}">
            <meta currentuser="{currentUser}" posts="{posts}">
          </layout>
        </route>
        <route path='/mana'>
          <scrolltotop>
            <layout currentuser="{currentUser}" posts="{posts}" handlelogout="{handleLogout}">
              <mana currentuser="{currentUser}" posts="{posts}"></mana>
            </layout>
          </scrolltotop>
        </route>
        <route path='/crypto'>
          <scrolltotop></scrolltotop>
          <layout currentuser="{currentUser}" posts="{posts}" handlelogout="{handleLogout}">
            <crypto currentuser="{currentUser}" posts="{posts}"></crypto>
          </layout>
        </route>
        <route path='/film'>
          <scrolltotop></scrolltotop>
          <layout currentuser="{currentUser}" posts="{posts}" handlelogout="{handleLogout}">
            <film currentuser="{currentUser}" posts="{posts}"></film>
          </layout>
        </route> 
      </switch>
    </div>
  );
}

export default App; 
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El componente ScrollToTop parece correcto, ya que utiliza el gancho useLocation para detectar cambios en la URL y luego desplaza la ventana hasta la parte superior de la página.

    El problema podría estar en la implementación de los componentes Route y Switch en el componente App. Es posible que algunos de los componentes renderizados dentro de las etiquetas Route estén causando que la página se desplace parcialmente pero no completamente hasta la parte superior.

    Una forma de solucionar esto es eliminar los componentes anidados dentro de cada etiqueta Route para ver si la página se desplaza completamente hasta la parte superior. Si lo hace, entonces agregue gradualmente cada componente anidado nuevamente, uno por uno, para aislar cuál está causando el desplazamiento parcial.

Comments are closed.