Adam Ebrahim نشر 13 مايو 2021 أرسل تقرير نشر 13 مايو 2021 عندما أقوم بعمل عنصر input من نوع checkbox في مكون React ووضع قيمة إفتراضية له كالتالي لا يمكنني أن أقوم بتغير هذه القيمة من خلال الضغط على العنصر: <input type="checkbox" checked="checked" /> حاولت أن أستخدم التابع createElement كما في الكود التالي لكن لم ينجح الأمر أيضًا: React.createElement('input', { type: 'checkbox', checked: 'checked' }, 'Check here'); اقتباس
0 Salah Eddin Beriani2 نشر 13 مايو 2021 أرسل تقرير نشر 13 مايو 2021 في react الأمر ليس ببساطة فأنت تحتاج لتحويل ال input الى حالة ال controlled بربطه ب state يعني استخدام شيفرة من هذا القبيل import React from 'react'; export default function test() { const [checked, setChecked] = useState(true);//حالة لتحديد وضعية الضغط const handleChange = (e) => { setChecked(!e.target.checked);//تغيير القيمة المنطقية }; return ( <div> <input onChange={handleChange} type="checkbox" checked={checked} /> </div> ); } 1 اقتباس
0 Mohamd Imran نشر 13 مايو 2021 أرسل تقرير نشر 13 مايو 2021 مرحباً @Adam Ebrahim السبب بسيط وهو إنك تقوم بإسناد الخاصية checked بشكل مباشر في React.createElement عند فعل ذلك لن تتمكن من تغيير القيمة بالتأكيد لأن العنصر الحالي هو checked لكن يجب أن تستخدم قيمة إفتراضية ولفعل ذلك نقوم بإضافة الخاصية defaultChecked وإسناد القيمة true إليها الكود النهائي يصبح هكذا React.createElement('input',{type: 'checkbox', defaultChecked: true}); وأخيراً قم بإزالة <input type="checkbox" checked="checked" /> لأننا نقوم بعمل العنصر (الinput) من خلال الميثود createElement 1 اقتباس
0 أحمد حبنكة نشر 13 مايو 2021 أرسل تقرير نشر 13 مايو 2021 فهمت عليك أنت تريد للـcheckbox أن يكون افتراضياً checked مع قابلية تغييره، في الغالب أنت تستعمل بالفعل useState أو this.state ولكن لسبب ما تظن أنهما لن يعملا ولكن الحقيقة هي أنهما سيعملان لسبب بسيط جداً: إن تابع useState يقبل معامل هو القيمة اﻻفتراضية لمتحول الحالة. إذاً في حالتك كل ما عليك استعماله هو useState(true) أي نمرر true كقيمة افتراضية لتابع useState. وحتى لو كنت تستعمل class component فعندها تضع القيمة اﻻفتراضية في constructor أي constructor(){ this.state = { checked: true } } 1 اقتباس
السؤال
Adam Ebrahim
عندما أقوم بعمل عنصر input من نوع checkbox في مكون React ووضع قيمة إفتراضية له كالتالي لا يمكنني أن أقوم بتغير هذه القيمة من خلال الضغط على العنصر:
حاولت أن أستخدم التابع createElement كما في الكود التالي لكن لم ينجح الأمر أيضًا:
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.