Javascript React DangerouslySetinerHTML仅允许特定的HTML标记

Javascript React DangerouslySetinerHTML仅允许特定的HTML标记,javascript,reactjs,html-rendering,Javascript,Reactjs,Html Rendering,在React中,我需要获取一个JavaScript字符串,并将其显示为HTML。我正在使用危险的LysetinerHTML来实现这一点,但我想通过只允许特定的标签(例如ul和li)来更安全地实现这一点。我怎样才能做到这一点 在下面的代码中,我只想允许使用ul和li标记 <p dangerouslySetInnerHTML={{ __html: '<ul><li>Item 1</li><li>Item 2</li>&

在React中,我需要获取一个JavaScript
字符串
,并将其显示为HTML。我正在使用
危险的LysetinerHTML
来实现这一点,但我想通过只允许特定的标签(例如
ul
li
)来更安全地实现这一点。我怎样才能做到这一点

在下面的代码中,我只想允许使用
ul
li
标记

<p
    dangerouslySetInnerHTML={{
    __html: '<ul><li>Item 1</li><li>Item 2</li><li>Item 3</li></ul>'
}}></p>

有一个名为的开源库,它完全满足您的需要。从他们的例子来看:

//只允许一组超级受限的标记和属性
const clean=sanitizeHtml(脏{
allowedTags:['b','i','em','strong','a'],
允许属性:{
'a':['href']
},
允许的主机名:['www.youtube.com']
});

根据可用的信息,我将把危险的LySetinerHTML的整个用法委托给一个包装函数,该函数至少需要一个参数。这一个参数将是我设置HTML的元素。通过这个包装器函数,我可以编写逻辑,以允许仅对某些元素执行此操作。共享一些示例代码以更好地理解。如何修复此错误
/node\u modules/sanitize html/node\u modules/postss/lib/lazy-result.js模块解析失败:意外标记(143:21)您可能需要一个合适的加载程序来处理此文件类型。
@Alon如果不了解有关您的设置的详细信息,很难说。它是webpack(create react app也在后台使用webpack),抱怨postcss中的文件中存在一些不受支持的语法,这是sanitize html的一个依赖项(如果有帮助的话)。您可能需要配置babel或类似的工具。@Alon面临类似的编译问题。有什么补救办法吗?
./node_modules/sanitize-html/node_modules/postcss/lib/lazy-result.js
Module parse failed: Unexpected token (143:21)
You may need an appropriate loader to handle this file type.