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

225
Visualizações
Uso de forwardRef de React en línea o como componente

Estoy jugando con OverlayTrigger de React-Bootstrap, que requiere que el componente secundario pasado pueda recibir una ref (indicado en los documentos: https://react-bootstrap.github.io/components/overlays/#overlaytrigger )

Tengo el siguiente código de trabajo:

 const Acomponent = forwardRef((props, ref) => { return ( <Button {...props} ref={ref}> {props.children} </Button> ); }); const App = () => { return ( <OverlayTrigger key="right" placement="right" overlay={<Tooltip>Tooltip!!</Tooltip>} > <Acomponent>My component with a tooltip</Acomponent> </OverlayTrigger> ); };

¿Hay alguna forma en que pueda usar forwardRef en línea o como un componente para evitar todo el repetitivo?

Algo como:

 const App = () => { return ( <OverlayTrigger key="right" placement="right" overlay={<Tooltip>Tooltip!!</Tooltip>} > { forwardRef((props, ref) => { <Button {...props} ref={ref}>My component with a tooltip</Button> } } </OverlayTrigger> ); };

O:

 const App = () => { return ( <OverlayTrigger key="right" placement="right" overlay={<Tooltip>Tooltip!!</Tooltip>} > <ForwardRefWrapper> <Button>My component with a tooltip</Button> </ForwardRefWrapper> </OverlayTrigger> ); };
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

En su ejemplo, AComponent solo representa un Button y nada más, y el Button ya acepta una referencia. Si ese es el caso que tiene, debería poder eliminar AComponent y simplemente hacer esto:

 <OverlayTrigger key="right" placement="right" overlay={<Tooltip>Tooltip!!</Tooltip>} > <Button>My component with a tooltip</Button> </OverlayTrigger>

Pero es posible que lo simplifique para hacer su pregunta, y AComponent tiene que hacer más cosas que eso. En ese caso: no, no hay opción más corta.

Su primer ejemplo no funcionará porque creará un tipo de componente completamente nuevo cada vez que se renderice la App . Dado que el tipo sigue cambiando, debe desmontarse y volver a montarse cada vez, eliminando cualquier estado en el proceso.

El segundo no funciona, porque ForwardRefWrapper tiene el mismo problema que OverlayTrigger : si solo te dan un apoyo para children con un elemento de un componente de función, no hay forma de saber qué elemento dentro de ese componente de función es la referencia. se supone que debe ser pasado a. De ninguna manera, a menos que escriba código para hacerlo, que es para lo que sirve forwardRef.

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