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

155
Visualizações
Cómo acceder a un componente secundario (desde props.children) ref usando componentes funcionales

Estoy tratando de usar un IntersectionObserver.observe() en cada componente secundario de un componente principal, pero para eso necesito sus referencias.

Así es como se ve mi componente principal:

 // App component <Nav> <Section ref={useRef(null)} {/* other props */} /> <Section ref={useRef(null)} {/* other props */} /> <Section ref={useRef(null)} {/* other props */} /> <Section ref={useRef(null)} {/* other props */} /> </Nav>

Necesito el componente Nav para acceder a la referencia de cada componente de la Section . Creé el observador y obtuve todos los elementos secundarios en una lista:

 // Nav component const observer = new IntersectionObserver(observerCallback, options); const sectionList: ReactElement<SectionProps>[] = []; childrenToList(props.children, sectionList); return ( <> <nav className="nav"> {/* ... */} </nav> {sectionList} </> )
 // Section component const Section = React.forwardRef<HTMLDivElement, SectionProps>((props, ref) => { return ( <section ref={ref} {/* other attributes */}>{props.children}</section> ); });

Esto es lo que está haciendo la función childrenToList :

 function childrenToList(children: ReactNode, listToPush: any[]) { React.Children.forEach(children, (element) => { if (!React.isValidElement(element)) return; listToPush.push(element); }); }

Entonces necesito una forma de hacer algo así (no un código de trabajo real):

 sectionList.forEach((section) => {observer.observe(section.ref.current)})

El problema es que no pude encontrar una manera de acceder a la ref. Ya intenté tener la referencia como accesorio, pero decía que su valor es nulo, o si lo usé con una declaración if (como

 const ref = section.props.ref if (ref) { observer.observe(ref.current) }

) la página simplemente no se procesaría y permanecería en blanco.

about 4 years ago · Juan Pablo Isaza
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