আপনার কাছে যদি ইতিমধ্যে map()
@ ফেকরেইনব্রিগান্ডের উত্তরটি পছন্দ করতে কোনও অ্যারে না থাকে এবং এটি ইনলাইন করতে চান তবে উত্স লেআউটটি @ সোফিএলপার্টের উত্তরের চেয়ে বেশি ফলাফলের সাথে মিলে যায়:
ES2015 (ES6) সিনট্যাক্স সহ (স্প্রেড এবং তীর ফাংশন)
http://plnkr.co/edit/mfqFWODVy8dKQQOkIEGV?p=preview
<tbody>
{[...Array(10)].map((x, i) =>
<ObjectRow key={i} />
)}
</tbody>
পুনরায়: বাবেলের সাথে প্রতিস্থাপনকারী, এর সতর্কতামূলক পৃষ্ঠাটি বলছে যে Array.from
এটি ছড়িয়ে দেওয়ার জন্য প্রয়োজনীয়, তবে বর্তমানে ( v5.8.23
) সত্যিকারের ছড়িয়ে দেওয়ার সময় এমনটি মনে হয় না Array
। এটি পরিষ্কার করার জন্য আমার কাছে একটি ডকুমেন্টেশন ইস্যু খোলা আছে। তবে আপনার নিজের ঝুঁকিতে বা পলিফিল ব্যবহার করুন।
ভ্যানিলা ইএস 5
Array.apply
<tbody>
{Array.apply(0, Array(10)).map(function (x, i) {
return <ObjectRow key={i} />;
})}
</tbody>
ইনলাইন 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>
অন্যান্য উত্তর থেকে কৌশলগুলির সংমিশ্রণ
উত্সের সাথে সংশ্লিষ্ট উত্সের বিন্যাসটি রাখুন, তবে অন্তর্ভুক্ত অংশটি আরও কমপ্যাক্ট করুন:
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>
);
}
ES2015 সিনট্যাক্স এবং Array
পদ্ধতি সহ
সঙ্গে Array.prototype.fill
আপনি বিস্তার ব্যবহার করে একটি বিকল্প হিসাবে এই কাজ করতে পারে উপরে সচিত্র হিসাবে:
<tbody>
{Array(10).fill(1).map((el, i) =>
<ObjectRow key={i} />
)}
</tbody>
(আমি মনে করি আপনি আসলে কোনও যুক্তি বাদ দিতে পারেন fill()
, তবে আমি তাতে 100% নই।) সমাধানটির পূর্ববর্তী সংস্করণে আমার ভুল সংশোধন করার জন্য @ ফেকরাইনব্রিজন্ডকে ধন্যবাদ fill()
(সংশোধনী দেখুন)।
key
সব ক্ষেত্রেই key
অ্যাটর্নিয়ার বিকাশের সাথে একটি সতর্কতা হ্রাস করে, তবে সন্তানের মধ্যে অ্যাক্সেসযোগ্য নয়। আপনি যদি সন্তানের মধ্যে সূচকটি উপলব্ধ করতে চান তবে আপনি অতিরিক্ত অ্যাটর্কে পাস করতে পারেন। আলোচনার জন্য তালিকা এবং কীগুলি দেখুন ।