React JSX内部のループ
以下のようなことをReact JSX
(ObjectRowは別のコンポーネント)でやろうとしています'。
<tbody>
for (var i=0; i < numrows; i++) {
<ObjectRow/>
}
</tbody>
JSXは関数呼び出しに対応しているので、これが有効な
JSXではないことは理解しています。しかし、テンプレートの世界から来て、
JSX`の初心者である私は、どのようにして上記(コンポーネントを複数回追加する)を実現するのか分かりません。
1126
3
JavaScriptの関数を呼び出しているようなものだと考えてください。関数呼び出しの引数が入るような
for
ループは使えません。関数
tbody
の引数にfor
ループが渡されていますが、これはもちろんシンタックスエラーです。しかし、配列を作って、それを引数として渡すことができます。
JSXを扱う場合も基本的には同じ構造を使うことができます。
ちなみに、私のJavaScriptの例は、JSXの例が変換されたものとほぼ同じです。Babel REPL](https://babeljs.io/repl)で遊んでみて、JSXがどのように動作するかを感じてみてください。
これがあなたの状況に合うかどうかはわかりませんが、多くの場合、mapが良い答えとなります。
これがあなたのforループのコードだったら
map]1でこのように書くことができます。
ES6の構文です。
古いスレッドですが、React Templatesをチェックアウトしてみてはいかがでしょうか。これは、いくつかのディレクティブ(rt-repeatなど)を使って、reactでjsxスタイルのテンプレートを使えるようにするものです。
react-templatesを使用した場合の例は以下のようになります。