2016-11-29 84 views
0
var PersistanceLayout = React.createClass({ 


    render : function(){ 
    var jsondata = {// nested json data}; 



    return (<div><table border="true"> 
     <TableRow fullData={jsondata}/> 
     </table></div>); 
    } 
}); 

var TableRow = React.createClass({ 
render : function() { 

var TableRowData=[]; 

    $.each(this.props.fullData, function(i, post) { 

    if(typeof post === 'object' && $.isArray(post) == true) 
    { 

     for(var key in post) 
     { 
      TableRowData.push(post[key]); 
     } 

    } 


    }.bind(this)); 


     TableRowData.map(function(data, i) { 
      //array or value 
      if(typeof data === 'object' && $.isArray(data) == false) 
      { 
       return (<tr><TableElement smallData={data} key={i} /></tr>); 
      } 

      if(typeof data === 'object' && $.isArray(data) == true) 
      { 
       return (<table border="1"><TableRow fullData={data}/></table>); 
      } 
     }.bind(this)); 




    } 

}); 

var TableElement = React.createClass({ 

render : function() 
{ 

$.each(this.props.smallData, function(i, val) { 

    return (<td>{val}</td>); 

    }); 

} 

}); 





ReactDOM.render(
     <PersistanceLayout />, 
     document.getElementById('div1') 
    ); 

以上是我在表中顯示嵌套json的代碼。但不知何故,我得到這個錯誤: 未捕獲的錯誤:TableRow.render():必須返回一個有效的React元素(或null)。您可能返回了未定義的數組或其他無效對象。在reactjs中的表中顯示嵌套的json數據

什麼是我做錯了?

回答

0

不知道你爲什麼要在這裏做任何綁定;子行將通過道具訪問他們的數據。

在任何情況下,你都不會做任何渲染;你需要實際返回一些東西來渲染。

+0

我想返回一些東西,那就是問題出現的地方。返回聲明中有任何錯誤? –

+0

@ K.SudhaSnigdha Render沒有return語句。 –