Hầu hết ứng dụng có form (đăng nhập, đăng ký, nhập dữ liệu) đòi hỏi xử lý đầu vào người dùng và xác thực (validation). Flutter cung cấp Form, TextFormField, validator, và controller để xây dựng và xác thực form — thiết yếu cho bất kỳ ứng dụng nào có đầu vào người dùng.
Form và TextFormField
final _formKey = GlobalKey<FormState>(); // một key để truy cập state của form
Form(
key: _formKey,
child: Column(children: [
TextFormField(
decoration: InputDecoration(labelText: 'Email'),
validator: (value) { // logic XÁC THỰC
if (value == null || value.isEmpty) return 'Email required';
if (!value.contains('@')) return 'Invalid email';
return null; // null = hợp lệ
},
),
ElevatedButton(
onPressed: () {
if (_formKey.currentState!.validate()) { // chạy tất cả validator
// tất cả field hợp lệ → submit
}
},
child: Text('Submit'),
),
]),
)
