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

229
Visualizações
Establezca el foco en el elemento después de hacer clic en el botón 'desplazarse hacia arriba'

Tengo un componente ScrollToTop, que esencialmente se desplaza hacia la parte superior después de hacer clic en el botón; sin embargo, noté que el foco permanece en el botón. ¿Cómo haría para establecer el foco en un elemento en otro componente?

Aquí está mi componente ScrollToTop:

 const ScrollToTop = () => { const [showScrollButton, setShowScrollButton] = useState<boolean>(false) const checkScrollToTop = () => { if (!showScrollButton && window.pageYOffset > 400) { setShowScrollButton(true) } else if (showScrollButton && window.pageYOffset <= 400) { setShowScrollButton(false) } }; const scrollToTop = () => { window.scrollTo({ top: 0, behavior: 'smooth' }); }; window.addEventListener('scroll', checkScrollToTop) return ( <button type='button' onClick={scrollToTop} > </button> ); } export default ScrollToTop;

Y luego simplemente lo importo a la página, sin embargo, el elemento en el que quiero que se establezca el foco está dentro del componente Lista:

 return ( <div> <List collections={collections} /> </div> <ScrollToTop /> );
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

document.getElementById("yourElementID").focus();

La línea anterior enfoca el elemento con ID yourElementID .

Intente agregar esa línea después de desplazarse.

Cambio

 const scrollToTop = () => { window.scrollTo({ top: 0, behavior: 'smooth' }); };

A

 const scrollToTop = () => { window.scrollTo({ top: 0, behavior: 'smooth' }); document.getElementById("yourElementID").focus(); };
about 4 years ago · Juan Pablo Isaza Relatório

0

En su caso, el componente ScrollToTop cambia el comportamiento del componente List. Por lo tanto, extraería el manejo de esto en el componente principal, que representa ambos componentes.

Creé una pequeña demostración (con algunos errores mecanografiados irrelevantes), que muestra más claramente lo que quiero decir: https://codesandbox.io/s/scrolltotopdemo-dh3q3

Básicamente:

  1. Cree un estado en el "componente principal", que controla el enfoque del componente Lista
  2. Use una referencia de reacción para establecer el foco en el elemento de entrada https://reactjs.org/docs/hooks-reference.html#useref
  3. Llame a una función en el componente ScrollToTop cuando se haga clic en el botón.
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