在项目开发中,有一个页面展示文字需要分组换行展示,在JS中处理,根据某个特殊的字符,然后用<br/>换行,处理如下
oldValue = OldValue.replace(/\n条件组/g, '<br/>条件组');
结果发现<br/>直接在页面上展示出来,。
一开始以为是处理的问题,后来发现直接在浏览器中输入<br>是没问题的。
通过网上查资料,在网上看到了dangerouslySetInnerHTML 这个知识点。
dangerously Set innerHtml
导致这个问题的原因:不合理的使用innerHtml可能会导致cross-site scripting(XSS)攻击。
dangerouslySetInnerHTML 主要被用来与DOM字符串操作类库一起使用,所以提供的html 必须要格式清晰。
{
title: OldValue, // 5
dataIndex: 'OldValue',
width: 300,
render: (val) => {
return (
<div dangerouslySetInnerHTML={{ __html: val }} />
);
},
},