😌

TextFormFieldの値が入力できない

に公開

生じている現象

以下の方法で、TextFormFieldの値を管理している時に、
TextFormFieldに値を入力しようとしてもできませんでした。
・TextFormFieldの値をstateで保持
・onChangedで入力値のstateを更新する

文字を入力すると

キーボードが閉じて、入力した値も反映されない

メールアドレスのTextFormField

TextFormField(
    onChanged: loginViewModel.changeLoginEmail,
    hintText: "メールアドレス",
    validator: (String? value) {
      return validator.checkEmail(value);
    },
)

onChangedの更新処理

  /// ログインメールアドレスの更新
  void changeLoginEmail(value) {
    update((data) {
      return data.copyWith(emailLogin: value);
    });
  }

解決策

formKeyの宣言を、
をWidget build(BuildContext context)の外で行うようにすることで解決しました。

  final GlobalKey<FormState> formKey = GlobalKey<FormState>();

  
  Widget build(BuildContext context) {
    return Form(
        key: formKey,
        child: Center(

Discussion