TextFormField
حقل إدخال مع تحقّق مدمج TextFormField
TextFormField نسخة من TextField مصمَّمة للعمل داخل Form — تضيف معامل validator للتحقّق التلقائي من صحة القيمة.
نفس خصائص TextField تقريبًا (controller, decoration, obscureText...) بالإضافة لـ validator وonSaved، ما يجعله الخيار القياسي لأي حقل داخل نموذج بدل TextField العادي.
الصياغة
TextFormField(
controller: TextEditingController,
validator: (value) => String?,
onSaved: (value) { },
)📄 مثال
TextFormField(
decoration: InputDecoration(labelText: 'البريد الإلكتروني'),
validator: (value) {
if (value == null || !value.contains('@')) {
return 'أدخل بريدًا إلكترونيًا صحيحًا';
}
return null;
},
)أهم المعاملات
| المعامل | الوظيفة |
|---|---|
| validator | دالة تُعيد نص الخطأ أو null إذا كانت القيمة صحيحة — تُستدعى عند formKey.currentState!.validate() |
| onSaved | تُستدعى بالقيمة النهائية عند formKey.currentState!.save() |
| initialValue | قيمة ابتدائية بلا حاجة لـ controller منفصل |
💡 نصائح عملية
- أعد null من validator يعني "القيمة صحيحة" — أي نص آخر يُعرض كرسالة خطأ تحت الحقل مباشرة
⚠️ أخطاء شائعة
- استخدامه خارج Form — validator يعمل فقط عند استدعاء validate() من FormState الأب
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار FLUTTER الكامل بالعربي.