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
renderizar con diferentes componentes secundarios de props

Actualmente estoy trabajando en un escenario, donde necesito poder importar un componente de la biblioteca, pero le digo que elija diferentes componentes para que algunos de sus componentes secundarios se rendericen. En este caso, necesita elegir diferentes componentes del botón, por ejemplo. Ahora ya tengo esto funcionando, como en, hace lo que debe hacer, pero me pregunto si tal vez haya una forma más adecuada/apropiada de hacerlo.

 export const container = ({component, children}) => { const ButtonComponent = component?.button ?? Button; return ( <div> <ButtonComponent size="large">Do something</ButtonComponent> </div> ) }

En este caso, los Botones se definen en esta misma biblioteca, pero del lado de la aplicación donde se consume la biblioteca, se modifican los botones, se agregan variantes, se agregan algunas propiedades que no son parte del componente original de la biblioteca. Y le estoy diciendo al componente que use un componente diferente como este:

 <container component={FancyButton} />

Como dije, esto funciona, pero parece que podría haber una solución más elegante para esto. Esto es relevante porque la biblioteca usa un enfoque de metodología de diseño atómico, donde algunos de los componentes más complejos usan componentes menos complejos, pero se modifican para un caso de uso específico. Entonces, todos los botones se están modificando para tener variantes adicionales, etc. Pero si luego voy a la cabeza y, por ejemplo, uso el modal, usa los botones normales, no los botones modificados. Esta es la solución que se me ocurrió, que me permite decirle al componente que use estos botones modificados en su lugar.

¿Esto tiene sentido? ¿Es esto un antipatrón? ¿Hay una solución más eficiente/elegante para esto?

1 €: aquí hay un codesandbox que demuestra lo que hace: https://codesandbox.io/s/practical-ives-jxk3v

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

0

const defaultComponents = { button: BaseButton } export const Card = ({ components=defaultComponents, children }) => { return ( <div className="card"> <h2>Thing</h2> {children} <components.button className="card__button">Click me</components.button> </div> ); };

No sé es esta ayuda. haré así. use = cuando pasa accesorios en una función significa el valor predeterminado de ese accesorio.

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