대부분의 앱에는 사용자 입력 처리와 유효성 검사가 필요한 폼(로그인, 회원가입, 데이터 입력)이 있습니다. Flutter는 폼을 만들고 검증하기 위한 Form, TextFormField, validator, 컨트롤러를 제공합니다 — 사용자 입력이 있는 모든 앱에 필수적입니다.
Form과 TextFormField
final _formKey = GlobalKey<FormState>(); // 폼의 state에 접근하기 위한 key
Form(
key: _formKey,
child: Column(children: [
TextFormField(
decoration: InputDecoration(labelText: 'Email'),
validator: (value) { // 유효성 검사 로직
if (value == null || value.isEmpty) return 'Email required';
if (!value.contains('@')) return 'Invalid email';
return null; // null = 유효
},
),
ElevatedButton(
onPressed: () {
if (_formKey.currentState!.validate()) { // 모든 validator 실행
// 모든 필드 유효 → 제출
}
},
child: Text('Submit'),
),
]),
)
