使用字符串作为输入与reactDOM.render,marked.js和babel

时间:2017-10-25 12:11:29

标签: javascript html reactjs

所以我试图使用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,所以也许我还没有学到更好的方法来做这样的事情。

由于

1 个答案:

答案 0 :(得分:1)

好吧,发现这个Using marked in react并使用&#34; dangerouslySetInnerHTML&#34;属性。有没有更好的方法来做到这一点?