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

126
Vistas
Guardar componentes en una lista y luego renderizar condicionalmente

Tengo una página web que muestra una lista de botones y los componentes iframe correspondientes. Cada vez que se hace clic en un nuevo botón, se muestra un nuevo iframe y se elimina el existente.

Aquí está el componente iframe:

 const IframeComp = ({ button }) => { return ( <iframe src={button}></iframe> ) } export default IframeComp

Estoy cargando todos los iframes posibles, como cadenas, en una lista en app.jsx cuando la aplicación se carga así:

 const [iframeComponents, setIframeComponents] = useState() useEffect(() => { function loadIframes() { let iframes = {} for (const iframeUrl of constants.buttonUrls) { const iframe = `<IframeComp button=${iframeUrl}></IframeComp>` iframes[iframeUrl] = iframe } setIframeComponents(iframes) } loadIframes() }, []);

Y pasar los iframeComponents al archivo de página de visualización de iframe que verifica qué botón se presiona y representa el iframe apropiado. Por supuesto, los iframes se representan como cadenas en este momento. ¿Hay alguna manera de cargar/representar estos componentes de IframeComp en app.jsx como componentes/html reales, almacenarlos en una lista y luego simplemente mostrarlos en sentido descendente en función del clic del botón?

Alternativamente, he intentado usar la biblioteca html-react-parser para simplemente representar las cadenas como html en el archivo de página de visualización de iframe, pero esto no funciona ya que pone las cadenas en minúsculas, y también tendrían que tomarse un tiempo para procesar cada clic de botón.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

¿Por qué no usar el componente directamente?

 const [iframeComponents, setIframeComponents] = useState(); useEffect(() => { function loadIframes() { let iframes = {}; for (const iframeUrl of constants.buttonUrls) { const iframe = <IframeComp button={iframeUrl}></IframeComp>; iframes[iframeUrl] = iframe; } setIframeComponents(iframes); } loadIframes(); }, []);

¿Cuál es su código real para cambiar iframe por botón?

over 4 years ago · Santiago Trujillo Denunciar

0

Es un poco difícil ver lo que está pasando aquí sin ver dónde estás representando el iFrame, pero te indicaré dónde creo que puedes encontrar lo que estás buscando:

Representación condicional: https://reactjs.org/docs/conditional-rendering.html

Además, puede usar la función .map en una matriz en el renderizado de un componente de esta manera:

 function Comp() { return ( <div> {['TestVal1', 'TestVal2'].map((val) => {return (<p>{val}</p>)})} </div> ) }
over 4 years ago · Santiago Trujillo 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