【发布时间】:2020-03-17 09:38:27
【问题描述】:
如果我有一个 javascript 变量,例如在反应中:
{variable}
如果我打印出来,我会得到:
one<br><br>None
如何更改来自数据库的<br><br> html 断线并获得结果:
one
None
【问题讨论】:
标签: javascript html reactjs
如果我有一个 javascript 变量,例如在反应中:
{variable}
如果我打印出来,我会得到:
one<br><br>None
如何更改来自数据库的<br><br> html 断线并获得结果:
one
None
【问题讨论】:
标签: javascript html reactjs
您可以使用函数 dangerouslySetInnerHTML 来执行此操作。
https://reactjs.org/docs/dom-elements.html#dangerouslysetinnerhtml
<div dangerouslySetInnerHTML={{__html: variable}} />;
然后 HTML 代码将照此呈现。
【讨论】:
我认为当您从数据库接收字符串
时,它是字符串而不是 html 元素,并且反应无法将其显示为 html 元素。您可以使用此react-html-parser 将从数据库接收到的此类 html 模板转换为显示为 html 元素。
import React from 'react';
import ReactHtmlParser, { processNodes, convertNodeToElement, htmlparser2 } from 'react-html-parser';
const StringToHtml = () => {
// retrieves variable here
return (
return <div>{ ReactHtmlParser(variable) }</div>;
);
}
export default StringToHtml;
【讨论】:
默认情况下,React 会转义 HTML 以防止 XSS(跨站点脚本)。如果你真的想渲染 HTML,你可以使用dangerouslySetInnerHTML 属性:
<div dangerouslySetInnerHTML={{__html: variable}} />
或者您可以使用任何解析 html 字符串的节点包。
【讨论】: