2016-10-25 13 views

答えて

0

すべての反応変数は、HTMLタグで囲む必要があります。

​​
0

はPraneshの答えに続いて、このコードは動作します:

var PostRow = React.createClass({ 
    render: function(){ 
     var loading = <td>joer</td>; 
     return(
      <tr> 
       {loading} 
      </tr> 
     ) 
    } 
}); 
0

事はあなたが変数に代入されていることであるJSX componentとちょうどそれをレンダリングします。あなたがnullをその変数に割り当てた後に、nullを返すだけなので、違反が発生します。あなたは何かを返す必要があります。だからreturn()文で構成要素であなたの行を追加し、それがES6でdivまたはtable

var PostRow = React.createClass({ 
 
    render: function(){ 
 
     var loading = <tr><td>one row</td></tr>; 
 
     return(
 
      <div>{loading}</div> 
 
     ) 
 
    } 
 
}); 
 
ReactDOM.render(<PostRow/>, document.getElementById('app'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react-dom.js"></script> 
 
<div id="app"></div>

0

return { foo }のJavaScriptの古いバージョンでreturn { foo: foo }の省略形である可能性があります。

これは、render関数がReactコンポーネントではなくプレーンオブジェクトを返すことを意味します。これはあなたのコードはバベルでtranspiledされる方法です。

var PostRow = React.createClass({ 
    displayName: "PostRow", 

    render: function render() { 
     var loading = React.createElement(
      "tr", 
      null, 
      React.createElement(
       "td", 
       null, 
       "one row" 
      ) 
     ); 
     return { loading: loading }; 
    } 
}); 

あなただけのすべてのこれらの括弧を省略し、単に変数を返すことができます。

var PostRow = React.createClass({ 
    render: function(){ 
     var loading = <tr><td>one row</td></tr>; 
     return loading; 
    } 
}); 
関連する問題