2016-09-26 38 views
0

我是JavaScript新手,需要做出反應。在反應過來,我們看下面的示例代碼:作爲javascript函數參數傳遞的html標記的對象類型

 ReactDOM.render(
     <h1> Hello, world! </h1>, 
     document.getElementById('example') 

這裏ReactDOM.render accetps'<H1>你好,世界!作爲第一個參數。

我試過以下測試代碼,警告框顯示'[object object]'。如果我使用'typeof var1'作爲alert(...),我只會得到'object'。這個對象的確切類型是什麼?我怎樣才能調試和查看它的詳細信息?

function mytest(var1, var2) { 
     alert(var1); 
     document.getElementById('example2').appendChild(var1); 
    } 

    mytest(<h1>hello</h1>, <h2>world</h2>); 
+0

你試過alert(typeof var1); ???您也可以在var1中循環查看對象的內容。 – tatactic

+0

alert(typeof var1)返回'object'。 – yuyang

回答

0

試試這個。你會得到你反應元素的絃樂版本。請記住,它不會像傳統的js對象那樣回來,就像{}。這可能是一個反應元素,因此將它串起來需要一些操作。我在下面展示的內容應該會讓你對那個元素做出什麼反應。

時(使用巴貝爾)transpiled到普通的JavaScript
alert(React.renderToString(var1)); 
+0

我可能會錯過一些東西。我得到了「嵌入式:5 Uncaught TypeError:React.renderToString不是函數」錯誤。 – yuyang

+0

我假設你在你的頁面中包含React。我可能誤解了你的設置。 –

1

JSX代碼如下所示:

function mytest(var1, var2) { 
     alert(var1); 
     document.getElementById('example2').appendChild(var1); 
} 

mytest(React.createElement(
     'h1', 
     null, 
     'hello' 
), React.createElement(
     'h2', 
     null, 
     'world' 
)); 

因此,大家可以看到var1實際上是React.createElement功能的產品,它的ReactElement

相關問題