Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

223
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!