تخطَّ إلى المحتوى

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 الكامل بالعربي.