2016-11-29 46 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语句。 –