Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

254
Visualizações
Cómo desplazarse a un componente específico en React JS

Creé un sitio web usando React (sin HTML) y dividí cada página en componentes más pequeños. Digamos que tengo por ejemplo la página principal, y en el primer componente (la sección principal que se encuentra en la parte superior de la página) tengo un botón, y cuando le doy clic quiero que me lleve al último componente de la página (que se encuentra en la parte inferior). Quiero algo similar al HTML "al hacer clic en desplazarse al elemento ID".

¿Cómo puedo lograr eso? Tenga en cuenta que para cada componente he creado un archivo js separado.

¡Gracias!

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Puedes lograrlo usando ganchos de reacción. Tienes que refactorizar un poco el último componente, como para reenviar una ref . Puede exponer el método de desplazamiento en LastComp con el gancho useImperativeHandle .

LastComp.js

 import { useImperativeHandle, forwardRef, useRef } from "react"; const LastComp = forwardRef((props, ref) => { const compRef = useRef(); useImperativeHandle(ref, () => ({ scrollIntoView: () => { compRef.current.scrollIntoView({ behavior: "smooth", block: "start" }); } })); return ( <div style={{ height: "600px", backgroundColor: "gray" }} ref={compRef}> Body of the last component </div> ); }); export default LastComp;

En FirstComp, puede pasar la referencia como refToLastComp y llamar al método que expusimos en LastComp .

FirstComp.js

 const FirstComp = ({ refToLastComp }) => { const scrolltoLast = () => { if (refToLastComp.current) { refToLastComp.current.scrollIntoView(); } }; return ( <div style={{ height: "600px", backgroundColor: "tomato" }} > <button onClick={scrolltoLast}>Scroll to Last</button> First </div> ); }; export default FirstComp;

En la página principal, puede crear y pasar una nueva referencia a LastComp y FirstComp .

Principal.js

 import { useRef } from "react"; import FirstComp from "./FirstComp"; import SecondComp from "./SecondComp"; import LastComp from "./LastComp"; export default function Main() { const ref = useRef(null); return ( <> <FirstComp refToLastComp={ref} /> <SecondComp /> <LastComp ref={ref} /> </> ); }

No importa dónde se encuentre el componente, puede estar en cualquier parte de la página de inicio. cuando hace clic en el botón, se desplazará al componente para ver (usando scrollIntoView ).

Zona de pruebas de código

about 4 years ago · Juan Pablo Isaza Relatório

0

Agregar enlace al elemento de la página

 <Link to="/page#elementid">Go</Link>

Haz esto, en el componente de tu página

 componentDidMount() { let target = window.location.hash; target && document.querySelector(target).scrollIntoView() }
about 4 years ago · Juan Pablo Isaza Relatório

0

tienes que nombrar cada componente por identificación única.

let scroll_to = document.getElementById("conponent_id").offsetTop; window.scrollTo({ comportamiento: "suave", arriba: scroll_to, });

botón onclick solo ejecuta este código

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda