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

136
Visualizações
Inyectar propiedades en componentes secundarios en React

Tengo un componente SkeletonTile con una animación donde el retraso de la animación se puede especificar a través de una propiedad pasada.

Ejemplo:

 type Props = { delay?: number; width?: string; height?: string; }; const SkeletonTile: React.FC<Props> = ({ delay, width, height }) => { return <div style={{ animationDelay: `${delay}s`, width, height }} className="skeleton-tile"></div>; }

Ahora, pensé en tener un componente SkeletonController que puede tomar múltiples componentes SkeletonTile como elementos secundarios. El SkeletonController luego distribuiría los valores de delay a los componentes secundarios con retrasos crecientes por hijo.

Ejemplo:

 <SkeletonController delayIncrease={0.2}> <SkeletonTile width="20em" height="20em" /> <div className="flex"> <SkeletonTile width="40em" height="20em" /> <SkeletonTile width="10em" height="20em" /> </div> </SkeletonController>

Entonces, el primer SkeletonTile tendría la propiedad de retraso establecida en 0 , el segundo en 0.2 y el tercero en 0.4 .

Ya intenté usar la funcionalidad Children.map para modificar los valores de propiedad. Sin embargo, esto no es posible porque los valores de propiedad de los componentes son inmutables.

Claro que podría usar algún tipo de función auxiliar que crea una matriz de elementos JSX, pero luego perdería la opción de establecer otras propiedades diferentes ( width , height ) en los niños.

¿Tiene alguna idea de cómo sería posible este enfoque? De forma anticipada, muchas gracias por su ayuda.

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

0

Puede pasar una serie de propiedades para usar para crear mosaicos en su componente de controlador:

 export type TileProps = { delay?: number; width?: string; height?: string; }; const SkeletonTile: React.FC<TileProps> = ({ delay, width, height }) => { return <div style={{ animationDelay: `${delay}s`, width, height }} className="skeleton-tile"></div>; } type SkeletonProps = { tiles: TileProps[]; delayIncrease: number; }; const SkeletonController: React.FC<SkeletonProps> = ({ tiles, delayIncrease }) => { return tiles.map((tile, index) => (<Tile width={tile.width} height={tile.height} delay={index * delayIncrease} />)); }

Luego puede usar su componente de esqueleto de esta manera:

 const tiles: TileProps[] = [ { height: '2em', width: '2em' }, { height: '2em', width: '2em' }, { height: '2em', width: '2em' }, ]; <SkeletonController delayIncrease={0.2} tiles={tiles} />
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