どうも、ちょげ(@chogetarou)です。
Form内のバリデーションエラーをクリアしてリセットする方法を紹介します。
方法
Formのバリデーションエラーをクリアするには、FormStateのresetメソッドを使います。
具体的には、Formのバリデーションエラーをクリアしたいタイミングで、「_formKey.currentState!.reset()」を呼び出します。
ElevatedButton(
onPressed: () => _formKey.currentState?.reset(),
child: Text('Reset'),
),
resetメソッドが呼び出されると、Form内のバリデーションエラーがクリアされます。
使用例
以下は、使用例です。
final _formKey = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Scaffold(
body: Form(
key: _formKey,
child: Center(
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: TextFormField(
validator: (value) {
if (value == null || value.length < 5) {
return '5文字より少ないです';
}
return null;
},
),
),
ElevatedButton(
onPressed: () => _formKey.currentState?.validate(),
child: Text('Validate'),
),
ElevatedButton(
onPressed: () => _formKey.currentState?.reset(),
child: Text('Reset'),
),
],
mainAxisSize: MainAxisSize.min,
),
),
),
);
}
[Flutter]フォームに送信ボタンを追加するには?
フォームに送信ボタンを追加する方法を紹介します。
[Flutter]TextFormFieldのバリデーションを自動でするには?
TextFormFieldのバリデーションを自動でする方法を紹介します。
[Flutter]TextFormFieldのバリデーションエラーテキストのサイズを設定するには?
TextFormFieldがバリデーションエラーを起こした時に表示されるテキストのサイズを設定する方法を紹介します。
[Flutter]Cupertino(iOS風)のTextFieldでバリデーションをするには?
CupertinoのTextFieldでバリデーションをする方法を紹介します。
コメント