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

331
Vistas
En mecanografiado, ¿cómo puedo representar de forma segura una etiqueta de anclaje en una cadena como componente de reacción?

En mi aplicación de reacción, obtengo datos de una base de datos y los muestro en la página web. Uno de los datos, docs.description es una cadena como esta "Click this link <a href='www.example.com'>Example</a>" .

Actualmente, todo lo que he intentado es simplemente imprimir la cadena completa o simplemente no funciona. Quiero mostrar el texto en el sitio con los enlaces interpretados y mostrados como deberían ser los enlaces, como: Haga clic en este enlace Ejemplo

Aquí está la sección de código si ayuda

 export const DocContainer: FC<{docs: AssetDocs}> = ({docs}) => { return ( <div className={styles.docContainer}> <Text h2 style={{color:"#26ff91"}}>Docs</Text> {docs && docs.description} </div> ); }

¡Cualquier ayuda sería muy apreciada! Por favor, hágamelo saber si necesita más detalles.

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

0

En realidad, hay 2 formas de hacer esto

El primero es el useRef que le dará una referencia de un elemento HTML (en su caso, sería el div principal) que puede usar como si estuviera en JS simple.

TL; DR puede acceder al accesorio innerHTML

 const ref = useRef(); return <div ref={ref}> // stuff goes here </div>

O puede usar el prop dangerouslySetInnerHTML SetInnerHTML React

 return <div dangerouslySetInnerHTML={{ __html: "YOUR_HTML_STRING" }}></div>

Esto debe desinfectarse antes de usarlo, ya que puede recibir cualquier tipo de ataque de inyección.

Personalmente, no lo he usado, pero encontré este paquete que haría el trabajo y es moderadamente popular.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Combinando todos los aportes valiosos de todos, pude crear lo que creo que es una solución segura usando dangerouslySetInnerHTML combinado con sanitizeHtml

 import { Text } from "@zeit-ui/react"; import React, { FC } from "react"; import styles from "./styles.module.css" import { AssetDocs } from "./types"; import sanitizeHtml from "sanitize-html" export const DocContainer: FC<{docs: AssetDocs}> = ({docs}) => { const createMarkup = () => { if (docs.description) return {__html: sanitizeHtml(docs.description)}; } return ( <div className={styles.docContainer}> <Text h2 style={{color:"#26ff91"}}>Docs</Text> <div dangerouslySetInnerHTML={createMarkup()} /> </div> ); }

¡Gracias a todos!

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