Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

271
Vistas
Interpolación de cadenas JSX en un nombre de componente

tengo este codigo...

 import React from 'react'; import Fade from 'react-reveal/Fade'; import { Novice } from '../../../Icons/Novice'; import { Apprentice } from '../../../Icons/Apprentice'; import { Explorer } from '../../../Icons/Explorer'; import { Advocate } from '../../../Icons/Advocate'; import { Profesional } from '../../../Icons/Profesional'; import { Ambassador } from '../../../Icons/Ambassador'; export const ProfileType = (props) => { const { label = 'Apprentice', } = props; return ( <Fade top delay={2100}> <div className="profile-card__work-type"> { /* {label === 'Novice' && <Novice />} {label === 'Apprentice' && <Apprentice />} {label === 'Explorer' && <Explorer />} {label === 'Advocate' && <Advocate />} {label === 'Profesional' && <Profesional />} {label === 'Ambassador' && <Ambassador />} */ } { `< ${label} />` } <span className="profile-card__work-type-text"> {' '} {label} </span> </div> </Fade> ); };

Quiero usar la variable 'etiqueta' como el nombre de mi componente y estoy tratando de usar la interpolación de cadenas para usarla así { `< ${label} />` } pero solo imprime la cadena < Principiante/ > a la pantalla.

ingrese la descripción de la imagen aquí

¿Cómo se puede usar la etiqueta variable como el nombre del componente en lugar de varias líneas de condicionales?

Saludos, Nicolás

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Usa un objeto para almacenar tus componentes...

 const obj = { Novice: <Novice />, Apprentice: <Apprentice />, Explorer: <Explorer />, Advocate: <Advocate />, Profesional: <Profesional />, Ambassador: <Ambassador /> };

Y luego acceda al objeto usando la etiqueta.

 {obj[label]}
about 4 years ago · Juan Pablo Isaza Denunciar

0

No puede simplemente poner < ${label} /> y esperar que se evalúe como un Componente si realmente quiere hacer esto, tiene que usar el accesorio dangerouslySetInnerHTML en un <div/> o algo así y darle un html válido Cuerda. Pero como sugiere el nombre del accesorio, es peligroso dada la posibilidad de ataques de ejecución remota de código.

Otra forma de hacer esto y probablemente la mejor manera, como sugiere la otra Respuesta, es colocar sus Componentes que ya están en una Matriz o como propiedades de un Objeto y acceder a ellos a través del índice del Componente en la Matriz o la clave de la propiedad del Objeto. .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda