【发布时间】:2017-07-31 05:40:24
【问题描述】:
我有这个 React 组件,它的主要目标是在将文章存储的广告 MarkDown(.md 文件)通过marked 转换为 HTML 后呈现。
Articles.js
import React from 'react';
import marked from 'marked';
import './articles.css';
export default class Articles extends React.Component {
constructor(props) {
super(props);
this.state = {
articles: [],
last_article: ""
}
}
componentWillMount() {
fetch('/last_article', {
headers: {
'Accept': 'text/markdown'
}
})
.then(res => res.text())
.then(txt => marked(txt))
.then(html => {
this.setState({
last_article: html
});
});
}
render() {
return (
<div className="articles">
{this.state.last_article}
</div>
);
}
}
后端工作正常,componentWillMount 获取正确的文本并完美地转换它。但它呈现如下:
我不是 React 专家,以前从未遇到过这个问题。
有什么建议吗?
【问题讨论】:
-
使用 dangerouslySetInnerHTML 来渲染 html。 facebook.github.io/react/docs/dom-elements.html
-
Ved 所说的,正要发布。
标签: javascript html reactjs rendering