يتلخص الأمر في من يكون مصدر الحقيقة لقيمة المدخل — حالة React أم الـ DOM نفسه.
المدخلات المضبوطة (React يمتلك القيمة)
قيمة value للمدخل مدفوعة بالحالة، و onChange يحافظ على مزامنة الحالة. الـ DOM يعكس دائماً React:
jsx
[name, setName] = ();
يتلخص الأمر في من يكون مصدر الحقيقة لقيمة المدخل — حالة React أم الـ DOM نفسه.
قيمة value للمدخل مدفوعة بالحالة، و onChange يحافظ على مزامنة الحالة. الـ DOM يعكس دائماً React:
[name, setName] = ();
لأن الحالة هي مصدر الحقيقة، يمكنك التحقق والتنسيق أو التحويل عند كل نقرة مفتاح (على سبيل المثال فرض الأحرف الكبيرة، تحديد الطول، تعطيل زر الإرسال).
المتصفح يحتفظ بالقيمة؛ تقرأها فقط عند الحاجة عبر ref:
const inputRef = useRef(null);
<input defaultValue="" ref={inputRef} />;
// on submit: const value = inputRef.current.value;
<input type="file"> دائماً غير مضبوطة)، أو دمج أدوات خارج React. كود أقل، لكن لا يمكنك الرد على التغييرات وهي تحدث.مزج الاثنين (تمرير value و defaultValue معاً) خطأ شائع وينشئ تحذير React.