Tengo problemas para lidiar con ReactJS de Facebook. Cada vez que hago ajax y quiero mostrar datos html, ReactJS lo muestra como texto. (Ver figura a continuación)
Los datos se muestran a través de la función de devolución de llamada correcta de jquery Ajax.
$.ajax({
url: url here,
dataType: "json",
success: function(data) {
this.setState({
action: data.action
})
}.bind(this)
});
¿Hay alguna manera fácil de convertir esto en html? ¿Cómo debo hacerlo usando ReactJS?
javascript
jquery
ajax
reactjs
Peter Wateber
fuente
fuente
sanitize
función deldompurify
paquete npm si obtiene esa información de una API externa.Ahora hay métodos más seguros para lograr esto. Los documentos se han actualizado con estos métodos.
Otros metodos
Más fácil : use Unicode, guarde el archivo como UTF-8 y
charset
configúrelo como UTF-8.<div>{'First · Second'}</div>
Más seguro : use el número Unicode para la entidad dentro de una cadena Javascript.
<div>{'First \u00b7 Second'}</div>
o
<div>{'First ' + String.fromCharCode(183) + ' Second'}</div>
O una matriz mixta con cadenas y elementos JSX.
<div>{['First ', <span>·</span>, ' Second']}</div>
Último recurso : inserte HTML sin formato utilizando
dangerouslySetInnerHTML
.<div dangerouslySetInnerHTML={{__html: 'First · Second'}} />
fuente
Recomiendo usar Interweave creado por milesj . Es una biblioteca fenomenal que hace uso de un número de técnicas ingeniosas para analizar e insertar HTML de forma segura en el DOM.
Ejemplo de uso:
fuente
fuente
Encontré este violín js. esto funciona así
enlace jsfiddle
fuente
import JSDOM from 'jsdom'; global.window = new JSDOM('', { url: 'http://localhost' }); global.document = global.window.document;
buena suerteTambién puede usar Parser () desde html-react-parser. Yo he usado lo mismo. Enlace compartido.
fuente
empiezo a usar el paquete npm llamado react-html-parser
fuente
Para aquellos que todavía están experimentando, npm install react-html-parser
Cuando lo instalé tenía 123628 descargas semanales.
fuente
Puede usar lo siguiente si desea renderizar html sin procesar en React
Ejemplo: renderizar
La prueba es un buen día
fuente