我正在创建一个 React WordPress 博客。现在我正在发送一个 JSON 请求并获取所有帖子,这工作正常)一旦我有了它,我就会为每个帖子创建一个帖子对象。
我可以正确显示标题、图像等。但是,当我尝试使用 post.content.rendered 显示帖子内容时(我取前 250 个字符进行预览),它在输出中显示实际的 html它不是打印“Hello World”,而是打印
<p>Hello World</p>
Run Code Online (Sandbox Code Playgroud)
我从 /wp-json/wp/v2/posts 成功获取 json 响应,并且在下面的代码中返回帖子信息。
return (
<article className="post-outer" id={post.id}>
<section className="post-section">
<a className="post-link">
<div className="post-box" >
<h1 className="post-title">
{post.title.rendered}
</h1>
<p className="post-desc">
{post.content.rendered.substring(0,250)}
</p>
</div>
<figure className="media-wrapper"><img src={ this.state.media } /></figure>
</a>
</section>
</article>
)
Run Code Online (Sandbox Code Playgroud)
用于dangerouslySetInnerHTML
渲染 html 字符串:
<div dangerouslySetInnerHTML={{ __html: post.content.rendered }} />
Run Code Online (Sandbox Code Playgroud)
dangerouslySetInnerHTML
是 ReactinnerHTML
在浏览器中使用的替代品,当您使用它时,它会DOM
在幕后告诉您该组件内部的 HTML 不是它关心的东西。dangerouslySetInnerHTML
React
检查这个例子:
<div dangerouslySetInnerHTML={{ __html: post.content.rendered }} />
Run Code Online (Sandbox Code Playgroud)
let a = "<p>Hello</p>";
let b = "<p>Hello";
let c = "<p>Hello<";
let d = "<p>Hello</";
class App extends React.Component{
render(){
return(<div>
<div dangerouslySetInnerHTML={{__html: a}}></div>
<div dangerouslySetInnerHTML={{__html: b}}></div>
<div dangerouslySetInnerHTML={{__html: c}}></div>
<div dangerouslySetInnerHTML={{__html: d}}></div>
</div>
)
}
}
ReactDOM.render(<App/>, document.getElementById('app'))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3598 次 |
最近记录: |