[Flutter]Formのバリデーションエラーをクリアしてリセットするには?

Flutter

どうも、ちょげ(@chogetarou)です。

Form内のバリデーションエラーをクリアしてリセットする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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,
          ),
        ),
      ),
    );
  }

コメント

タイトルとURLをコピーしました