我简化了下问题:
{
"show": "<strong>test</strong>"
}
以上是JSON返回的数据。
render:function(){
var page=this.state.data.show;
console.log(page);
return (
<div>
<ul>
</ul>
{page}
<div dangerouslySetInnerHTML={{__html: page}} />
</div>
);
}
这是react的render部分,如果只使用 {page},则直接原样输出了,即:
<strong>test</strong>
如果使用了 <div dangerouslySetInnerHTML={{__html: page}} />
则提示以下错误:
Error: Invariant Violation: `props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit http://fb.me/react-invariant-dangerously-set-inner-html for more information.
求正确的显示方法!
另外,一般求通用的方法解决从服务器返回HTML,前端使用react解析的问题!
把<div dangerouslySetInnerHTML={{__html: page}} />
改成 <div dangerouslySetInnerHTML={__html: page} />
--- update ---
function createMarkup() { return {__html: page}; };
<div dangerouslySetInnerHTML={createMarkup()} />
react免费课程
官方栗子