如何在 ReactJS 中将纯文本转换为 html JSX
Posted
技术标签:
【中文标题】如何在 ReactJS 中将纯文本转换为 html JSX【英文标题】:How to transform plain text to html JSX in ReactJS 【发布时间】:2015-10-24 16:35:40 【问题描述】:我有这样的组件:
import React from 'react';
import Autolinker from 'autolinker';
class Comment extends React.Component
constructor(props)
super(props);
render()
return <li className="media comment">
<div className="image">
<img src=this.props.activity.user.avatar.small_url />
</div>
<div className="body">
<p>
<strong>this.props.activity.user.full_name</strong>
</p>
</div>
<div>
<p>
Autolinker.link(this.props.activity.text)
</p>
</div>
</li>;
export default Comment;
自动链接器返回一个字符串值,如下所示:
"So basically <a href="http://www.silastar.com/dev-sila" target="_blank">silastar.com/dev-sila</a> is perfect and works correctly?"
如何将此字符串转换为html JSX,以便锚链接显示为链接而不是纯文本??
【问题讨论】:
【参考方案1】:你必须使用dangerouslySetInnerHTML:
<p dangerouslySetInnerHTML=__html: Autolinker.link(this.props.activity.text) />
【讨论】:
如果this.props.activity.text
未经过清理,此解决方案会造成 XSS 安全威胁。不幸的是,common approach to sanitizing html 字符会扭曲自动链接器的一些 URL。以上是关于如何在 ReactJS 中将纯文本转换为 html JSX的主要内容,如果未能解决你的问题,请参考以下文章
如何在谷歌应用脚本中将段落 html 字符串转换为没有 html 标签的纯文本?
如何在python中将纯文本转换为分段块(字节)? [复制]