نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
العودة للتغريدات
سؤالتم الحل

هو أنا ليه لما بغير الـ State في React المشهد مش بيتحدث فوراً وبيمشي ببطء خطوة؟

K
kahraba
·١٧ يوليو ٢٠٢٦·5 مشاهدة
يا شباب أنا واقع في مشكلة غريبة شوية في React. بغير قيمة متغَيّر باستعمال دالة الـ State زي setCount(count + 1)، وبنادي بعدها في السطر اللي تحته مباشرة على console.log(count) عشان أتأكد إن القيمة اتحدثت. الغريب بقى: الـ console.log بيطبعلي القيمة القديمة مش الجديدة! بحس إن الـ State متأخرة خطوة. لازم أضغط على الزرار مرة كمان عشان يطبع القيمة اللي المفروض كانت تظهر في الضغطة الأولى! هو ليه React بتعمل كده؟ وإزاي أقدر أقرأ القيمة الجديدة فوراً بعد ما أحدثها؟
أسئلة-reactكود-رياكتحالة-الـ-stateأخطاء-usestateجافاسكريبتمشاكل-javascriptبرمجة-فرونت-اندأساسيات-reactمشاكل-usestate

التعليقات (1)

الحل المعتمد
abdelrahman
abdelrahmanمنذ 90 يوم
الـ State في React عملية غير متزامنة (Asynchronous / Batched). لما بتستدعي دالة التحديث زي setCount، React مش بتغير القيمة في نفس اللحظة في السطر اللي بعده؛ هي بتاخد طلب التحديث وتحطه في الطابور (Queue) وتنتظر لحد ما الـ Function تخلص عشان تعمل Re-render للمكون وتحدث القيم مرة واحدة لزيادة الأداء. علشان كده لما بتعمل console.log في السطر اللي بعد الـ setState مباشرة، بتكون بتمسك النُسخة القديمة اللي جوه الـ Render الحالي. لو محتاج القيمة الجديدة عشان تعرضها أو تستخدمها في التحديث التالي: استخدم دالة الـ Callback جوه الـ setState بالشكل ده:
JavaScript
// الدالة بتبعتلك أحدث قيمة للـ State المضمونة
setCount(prevCount => prevCount + 1);

سجّل دخولك لإضافة تعليق

تسجيل الدخول
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر