كيفية تغيير قيمة السياق (Context) في React
مشكلة تغيير قيمة السياق
عند إنشاء سياق باستخدام createContext
، يمكنك تحديد قيمة افتراضية:
هذه القيمة الافتراضية لا تتغير. React يستخدم هذه القيمة فقط كملاذ أخير إذا لم يجد مزود سياق (Provider) مطابق في الشجرة فوق المكون الذي يقرأ السياق.
كيفية جعل قيمة السياق تتغير بمرور الوقت
لتغيير قيمة السياق بمرور الوقت، يجب إضافة حالة (state) وتغليف المكونات في مزود سياق (Context Provider).
خطوات الحل
- إنشاء حالة (state): استخدم
useState
لإنشاء حالة يمكن تغييرها. - تغليف المكونات في مزود سياق: استخدم
Provider
لتوفير قيمة السياق الديناميكية.
مثال عملي
1. إنشاء السياق
2. مكون App
الشرح
- إنشاء حالة (state): قمنا بإنشاء حالتين
theme
وcurrentUser
باستخدامuseState
. - تغليف المكونات في مزود سياق: استخدمنا
ThemeContext.Provider
وAuthContext.Provider
لتوفير القيم الديناميكية للمكونات الفرعية.
قراءة وتغيير قيمة السياق
1. قراءة قيمة السياق
يمكنك قراءة قيمة السياق باستخدام useContext
:
2. تغيير قيمة السياق
لتغيير قيمة السياق، يمكنك استخدام الدالة المخصصة لتغيير الحالة (setState
):
الشرح التفصيلي
- قراءة قيمة السياق: استخدمنا
useContext
لقراءة قيمة السياق في مكونButton
. - تغيير قيمة السياق: استخدمنا
useContext
لقراءة وتغيير قيمة السياق في مكونThemeSwitcher
.
بهذا الشكل، يمكنك تغيير قيمة السياق بمرور الوقت وجعلها ديناميكية.
تعليقات
إرسال تعليق