Si vous n'avez pas encore de tableau pour map()
aimer la réponse de @ FakeRainBrigand, et que vous souhaitez l'inclure de sorte que la disposition source corresponde à la sortie plus proche que la réponse de @ SophieAlpert:
Avec la syntaxe ES2015 (ES6) (fonctions de propagation et de flèche)
http://plnkr.co/edit/mfqFWODVy8dKQQOkIEGV?p=preview
<tbody>
{[...Array(10)].map((x, i) =>
<ObjectRow key={i} />
)}
</tbody>
Re: transpiling avec Babel, sa page de mises en garde dit que Array.from
c'est nécessaire pour la propagation, mais à l'heure actuelle ( v5.8.23
) cela ne semble pas être le cas lors de la propagation d'un réel Array
. J'ai un problème de documentation ouvert pour clarifier cela. Mais utilisez à vos risques et périls ou polyfill.
Vanilla ES5
Array.apply
<tbody>
{Array.apply(0, Array(10)).map(function (x, i) {
return <ObjectRow key={i} />;
})}
</tbody>
Inline IIFE
http://plnkr.co/edit/4kQjdTzd4w69g8Suu2hT?p=preview
<tbody>
{(function (rows, i, len) {
while (++i <= len) {
rows.push(<ObjectRow key={i} />)
}
return rows;
})([], 0, 10)}
</tbody>
Combinaison de techniques d'autres réponses
Conservez la disposition source correspondant à la sortie, mais rendez la partie en ligne plus compacte:
render: function () {
var rows = [], i = 0, len = 10;
while (++i <= len) rows.push(i);
return (
<tbody>
{rows.map(function (i) {
return <ObjectRow key={i} index={i} />;
})}
</tbody>
);
}
Avec la syntaxe et les Array
méthodes ES2015
Avec, Array.prototype.fill
vous pouvez faire cela comme une alternative à l'utilisation de spread comme illustré ci-dessus:
<tbody>
{Array(10).fill(1).map((el, i) =>
<ObjectRow key={i} />
)}
</tbody>
(Je pense que vous pourriez en fait omettre tout argument fill()
, mais je ne suis pas à 100% là-dessus.) Merci à @FakeRainBrigand d'avoir corrigé mon erreur dans une version antérieure de la fill()
solution (voir les révisions).
key
Dans tous les cas, l' key
attr atténue un avertissement avec la build de développement, mais n'est pas accessible à l'enfant. Vous pouvez passer un attr supplémentaire si vous voulez que l'index soit disponible dans l'enfant. Voir Listes et clés pour discussion.