如何在 ReactJS 中将纯文本转换为 html JSX
How to transform plain text to html JSX in ReactJS
我有这样的组件:
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} width="42" height="42" />
</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;
Autolinker returns 像这样的字符串值:
"So basically <a href="http://www.silastar.com/dev-sila" target="_blank">silastar.com/dev-sila</a> is perfect and works correctly?"
如何将此字符串转换为 html JSX,以便锚点 link 显示为 link 而不是纯文本?
你必须使用 dangerouslySetInnerHTML:
<p dangerouslySetInnerHTML={{__html: Autolinker.link(this.props.activity.text)}} />
我有这样的组件:
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} width="42" height="42" />
</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;
Autolinker returns 像这样的字符串值:
"So basically <a href="http://www.silastar.com/dev-sila" target="_blank">silastar.com/dev-sila</a> is perfect and works correctly?"
如何将此字符串转换为 html JSX,以便锚点 link 显示为 link 而不是纯文本?
你必须使用 dangerouslySetInnerHTML:
<p dangerouslySetInnerHTML={{__html: Autolinker.link(this.props.activity.text)}} />