【问题标题】:How to process line-break <br> in react/javascript and convert it to html [duplicate]如何在react / javascript中处理换行符<br>并将其转换为html [重复]
【发布时间】:2020-03-17 09:38:27
【问题描述】:

如果我有一个 javascript 变量,例如在反应中:

{variable}

如果我打印出来,我会得到:

one<br><br>None 

如何更改来自数据库的&lt;br&gt;&lt;br&gt; html 断线并获得结果:

one

None

【问题讨论】:

    标签: javascript html reactjs


    【解决方案1】:

    您可以使用函数 dangerouslySetInnerHTML 来执行此操作。

    https://reactjs.org/docs/dom-elements.html#dangerouslysetinnerhtml

    <div dangerouslySetInnerHTML={{__html: variable}} />;
    

    然后 HTML 代码将照此呈现。

    【讨论】:

      【解决方案2】:

      我认为当您从数据库接收字符串

      时,它是字符串而不是 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;
      

      【讨论】:

        【解决方案3】:

        默认情况下,React 会转义 HTML 以防止 XSS(跨站点脚本)。如果你真的想渲染 HTML,你可以使用dangerouslySetInnerHTML 属性:

        <div dangerouslySetInnerHTML={{__html: variable}} />
        

        或者您可以使用任何解析 html 字符串的节点包。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-11-02
          • 2011-03-19
          • 1970-01-01
          • 1970-01-01
          • 2019-09-15
          • 1970-01-01
          • 2012-01-14
          • 1970-01-01
          相关资源
          最近更新 更多