react 解析html字符串,在React组件中将HTML字符串呈现为真实HTML

小编典典

确实this.props.match.description是一个字符串或一个对象?如果是字符串,则应将其转换为HTML。例:

class App extends React.Component {

constructor() {

super();

this.state = {

description: '

something

'

}

}

render() {

return (

);

}

}

ReactDOM.render(, document.getElementById('root'));

但是,如果description:

something

没有引号,’‘您将得到:

​```

Object {

$$typeof: [object Symbol] {},

_owner: null,

key: null,

props: Object {

children: “something”,

style: “color:red;”

},

ref: null,

type: “h1”

}

如果它是字符串,并且您没有看到任何HTML标记,那么我看到的唯一问题是标记错误。

更新

如果您正在处理`HTMLEntitles`。您需要先解码它们,然后才能发送给他们,`dangerouslySetInnerHTML`这就是为什么他们危险地称呼它:)

工作示例:

class App extends React.Component {

constructor() {

super();

this.state = {

description: ‘

Our Opportunity:

}

}

htmlDecode(input){

var e = document.createElement(‘div’);

e.innerHTML = input;

return e.childNodes.length === 0 ? “” : e.childNodes[0].nodeValue;

}

render() {

return (

);

}

}

ReactDOM.render(, document.getElementById(‘root’));

```

2020-05-15

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值