Mohamed Lamin Mahmoudi نشر 15 فبراير 2023 أرسل تقرير نشر 15 فبراير 2023 const [tasks ,setTsks]=useState([]); setTsks([...tasks,{ text:val , completed:false ,id: Math.random()*1000 }]) أريد أن أفهم كيف تتم إضافة الكائن للجدول tasks بهذه الطريقة اقتباس
0 Sam Ahw نشر 15 فبراير 2023 أرسل تقرير نشر 15 فبراير 2023 يتم إضافة كائن Object جديد إلى المصفوفة tasks من خلال استخدام معامل النشر أو (Spread Operator) وهو مفهوم بالجافاسكريبت يعمل على نشر عناصر مصفوفة ما، أي بمعنى آخر يتم إعادة وضع جميع عناصر المصفوفة tasks كما هي وباستخدام الفاصلة والقيمة الجديدة يتم إضافة هذه القيمة إلى القيم السابقة. مثال: let numbers = [1,2,3]; let newNumbers = [...numbers,4]; newNumbers = [1,2,3,4] ستكون قيمة المصفوفة الجديدة تساوي قيمة المصفوفة السابقة ويضاف لها الرقم الجديد وبنفس الطريقة يتم دمج عناصر من عدّة مصفوفات بمفصفوفة واحدة، مثال: var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; arr1 = [...arr1, ...arr2]; الناتج: [0,1,2,3,4,5] يمكنك إيجاد بعض الأمثلة المفيدة ضمن موسوعة حسوب (من هنا) أما بالنسبة لآلية عمل useState فهو يعرف بالخطّاف وهو من أساسيات مكتبة React وآلية عمله بشكل مختصر هو تحديث بعض القيم تبعاً لمتغيرات، بحيث يتم إضافة قيمة مبدئية للمتغيّر الذي نرغب بتحديثه (وهنا في مثالنا وضعنا مصفوفة فارغة) ثم يتم تحديثها باستخدام setTasks. ويمكنك قراءة المزيد عنها من خلال التوثيق الرسمي والبحث على الانترنت ستجد العديد من الأمثلة الشاملة. 1 اقتباس
0 عبدالباسط ابراهيم نشر 16 فبراير 2023 أرسل تقرير نشر 16 فبراير 2023 نقوم باستخدام ال spread operator في ال useState حتى نقوم بتحديث القيم الموجودة في ال state وكما تم التوضيح في التعليق السابق بشكل جيد سأحاول توضيح أهميته من خلال المثال التالي إذا كان لديك مصفوفة من الكائنات أو الكائنات ذات الحقول والقيم ، وتريد إضافة المزيد من الحقول أو العناصر بحيث يمكنك القيام بذلك باستخدام التعليمات التالية. لنأخذ مثالاً ، لنفترض أن لدينا الحالة التالية بالأشياء const [values, setValues] = useState({ full_name: "", email: "", password: "", confirmPassword: "", type: "" }); ونريد فقط تحديث قيمة البريد الإلكتروني ، يمكننا القيام بذلك باستخدام spread operator: setValues({ ...values, email: 'new Value' }) لنفترض أنك تريد إضافة حقل أو كائن جديد في المصفوفة أو الحالة ، لتحقيق ذلك سنتبع الطريقة التالية setValues({ ...values, nickName: 'new Value' }) 1 اقتباس
السؤال
Mohamed Lamin Mahmoudi
أريد أن أفهم كيف تتم إضافة الكائن للجدول tasks بهذه الطريقة
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.