محمود سعداوي2 نشر 20 نوفمبر 2022 أرسل تقرير نشر 20 نوفمبر 2022 قمت بدالة أريد من خلالها إرجاع عنصر محدد (الذي قمت بالضغط عليه) المشكل أن النتيجة تكون دائما أول عنصر من المصفوفة const noteClicked = () => { setCreating(false) let selectedNote = notes.find((note,i)=> note.id === notes[i].id) console.log(selectedNote) } شكرا جزيلا. 1 اقتباس
0 عمر قره محمد نشر 20 نوفمبر 2022 أرسل تقرير نشر 20 نوفمبر 2022 يحدث ذلك لأن الشرط الذي كتبته داخل الـ find : note.id === notes[i].id يكون صحيحاً من اجل اول عنصر في المصفوفة دائماً، ليس هذا فقط بل إنه صحيح لكل عناصر المصفوفة. ولأن الوظيفة find مصممة لتعيد اول عنصر يحقق الشرط فلذلك تعيد العنصر الأول دائماً. ولحل المشكلة يجب ان تحصل على الـ id بطريقة مختلفة، مثل إضافة الوظيفة التي تريدها عند انشاء العنصر وإضافة الـ id الخاص به لهذه الوظيفة كالتالي : Notes?.map(note => ( <dev onClick = {() => noteClicked(note.id) }> {note.text} </dev> )) const noteClicked = (id) => { setCreating(false) let selectedNote = notes.find((note,i)=> note.id === id) console.log(selectedNote) } 1 اقتباس
0 محمود سعداوي2 نشر 20 نوفمبر 2022 الكاتب أرسل تقرير نشر 20 نوفمبر 2022 بتاريخ 4 دقائق مضت قال عمر قره محمد: يحدث ذلك لأن الشرط الذي كتبته داخل الـ find : note.id === notes[i].id يكون صحيحاً من اجل اول عنصر في المصفوفة دائماً، ليس هذا فقط بل إنه صحيح لكل عناصر المصفوفة. ولأن الوظيفة find مصممة لتعيد اول عنصر يحقق الشرط فلذلك تعيد العنصر الأول دائماً. ولحل المشكلة يجب ان تحصل على الـ id بطريقة مختلفة، مثل إضافة الوظيفة التي تريدها عند انشاء العنصر وإضافة الـ id الخاص به لهذه الوظيفة كالتالي : Notes?.map(note => ( <dev onClick = {() => noteClicked(note.id) }> {note.text} </dev> )) const noteClicked = (id) => { setCreating(false) let selectedNote = notes.find((note,i)=> note.id === id) console.log(selectedNote) } هل يمكن استعمال filter. اقتباس
0 عمر قره محمد نشر 20 نوفمبر 2022 أرسل تقرير نشر 20 نوفمبر 2022 بتاريخ منذ ساعة مضت قال محمود سعداوي: هل يمكن استعمال filter. المشكلة ليست في الـ find ولكن في الشيء الذي تبحث عنه، حيث انك لا توفر الـ id الذي تبحث عنه في الوظيفة. وبالتالي فالـ filter ستعطيك مشكلة شبيهة بالسابق 1 اقتباس
0 محمود سعداوي2 نشر 20 نوفمبر 2022 الكاتب أرسل تقرير نشر 20 نوفمبر 2022 بتاريخ 22 دقائق مضت قال عمر قره محمد: المشكلة ليست في الـ find ولكن في الشيء الذي تبحث عنه، حيث انك لا توفر الـ id الذي تبحث عنه في الوظيفة. وبالتالي فالـ filter ستعطيك مشكلة شبيهة بالسابق شكرا اقتباس
السؤال
محمود سعداوي2
قمت بدالة أريد من خلالها إرجاع عنصر محدد (الذي قمت بالضغط عليه)
المشكل أن النتيجة تكون دائما أول عنصر من المصفوفة
شكرا جزيلا.
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.