Rayden Storm نشر 23 فبراير 2021 أرسل تقرير نشر 23 فبراير 2021 أحاول استخدام for loop لعرض بيانات داخل div ولكن هذا يحدث error <div> for (var i=0; i < list.length ; i++) { <post list={list[i]} /> } </div> لكن هذا لم ينجح هل هناك طريقة اخرى اقتباس
1 Salah Eddin Beriani2 نشر 23 فبراير 2021 أرسل تقرير نشر 23 فبراير 2021 jsx هو عبارة على javascript نعم لكن هذا لا يخولك لاستخدام كود javascript بالطريقة المعتادة فعناصر ال jsx هي في الحقيقة دوال واذا ترجمنا الكود الذي ارفقته في السؤال فسيكون كالتالي return div( for (var i = 0; i < list.length; i++) { post } ) وفي javascript لا يمكننا كتابة كود في منطقة المعاملات لدالة ما ولكن يمكننا توفير المعاملات فقط لذا فالطريقة الصحيحة للوصول لذلك هي اعطاء معامل لعنصر jsx هكذا <div>{title}</div> هذا سيترجم الى return div(title) وهذا كود javascript صحيح ويمكنك تطبيقه في مثالك بهذه الطريقة : <div> { list.map((res)=> ( <post list={res} /> ))} </div> 1 اقتباس
1 Abdulhamid Hamsho2 نشر 23 فبراير 2021 أرسل تقرير نشر 23 فبراير 2021 مرحبًا @Rayden Storm، لايمكنك استخدام هذه الطريقة لعرض بيانات داخل عنصر div فلا يمكنك كتابة الحلقات واكواد الجافا سكريبت داخل return و داخل HTML مباشرة. يجب عليك استخدام مصفوفة فارغة وقم بارسال بيانات الحلقة إلى داخل العنصر الذي تريد كما في المثال التالي: function Home(){ // المصفوفة التي تريد تكرارها const list = ['ahmed', 'mohammed', 'marwan', 'etc']; // مصفوفة فارغة لإضافة عناصر HTML التي تريدها const resultHtml = []; // حلقة ﻹضافة العناصر إلى المصفوفة الفارغة for(var i=0; i<list.length ; i++){ resultHtml.push(<span>{list[i]}</span>) } // طباعة المصفوفة المطلوبة return( <div> {resultHtml} <div> ) } أتمنى لك التوفيق. اقتباس
السؤال
Rayden Storm
أحاول استخدام for loop لعرض بيانات داخل div ولكن هذا يحدث error
لكن هذا لم ينجح هل هناك طريقة اخرى
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.