2017-12-27 534 views
3

如果你想显示在一个阵营视图°˚F像°F一个字符串,我已经找到了记录的方式做到这一点,就像这样:安全的字符串输出阵营生态系统

import React from 'react'; 

export default function renderSafeHTML(rawHTML, element = 'div') { 
    return React.createElement(element, { 
    dangerouslySetInnerHTML: { 
     __html: rawHTML 
    } 
    }); 
} 

而作为使用例如:

{renderSafeHTML('°F')} 

生态系统中是否有任何助手来简化转义内容? Ember具有用于转义的{{content}}和用于显示不转义的内容的{{{content}}}以及用于将字符串标记为安全的.safeString

React中是否有类似的东西?我很想知道如何将这个功能添加到JSX中,如{}{{}},类似于Ember。为什么React中不存在?

回答

1

我相信React希望你知道它的危险性。他们希望你去努力输入所有这些。他们不想让它变得更容易。

这是从自己的文件采取:

一般来说,从代码中设置HTML是有风险的,因为它很容易在不经意间 使您的用户能够跨站点脚本(XSS)攻击 。所以,你可以直接从React中设置HTML,但是你必须输入 而不是危险的SetInnerHTML并且用__html键传递一个对象到 提醒你自己它是危险的。

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