所以我试图使用React,babel和marked.js构建一个git markdown预览器。 Marked.js是一个降价解析器。
所以说我有一个值,我想从我的HTML中使用。
<div id="markdownInput"># This is my input</div>
在javascript中,我将其存储为变量myInput。
var myInput = document.getElementById("markdownInput").value;
myInput现在是#34;#这是我的输入&#34;并且是一个字符串。 Marked.js使用一个名为&#34;标记为()&#34;的函数。将字符串作为输入并将git markdown转换为html。
var myOutput = marked(myInput);
myOutput现在等于:
"<h1>This is my input</h1>"
请注意,降价已转换(#=&gt; h1),但也会存储为字符串。如果我试图像使用reactDOM.render那样使用它:
ReactDOM.render(myOutput, document.getElementById("output-container"));
我的&#34;输出容器&#34;在我的HTML中最终显示:
<h1>This is my input</h1>
而不是显示&#34; 这是我的输入&#34;在大标题字母。归结为React.DOM.render()需要一个对象作为输入而不是字符串。它需要:
<h1>This is my input</h1>
作为一个对象,但我将它作为字符串输入,因为marked()函数只输出为一个字符串(用引号括起所有内容)。
我有什么办法可以将myOutput转换为对象吗?我非常了解React,所以也许我还没有学到更好的方法来做这样的事情。
由于
答案 0 :(得分:1)
好吧,发现这个Using marked in react并使用&#34; dangerouslySetInnerHTML&#34;属性。有没有更好的方法来做到这一点?