flutterでアプリ開発してたらエラーではまったのでその対応メモです。
なお開発環境は次の通りです。
- Windows 10
- flutter 3.22.2
事象
TextFormFieldを利用すると、次のようなエラーが表示されました。
'package:flutter/src/material/text_form_field.dart': Failed assertion: line 177 pos 15: 'initialValue == null || controller == null': is not true.
このエラーが発生する最小のコードは次の通りです。
TextFormField(
controller: TextEditingController(),
initialValue: 'init',
),
原因
TextFormFieldではcontrollerとinitialValueを同時に利用することはできません。
initialValueに値を設定すると内部的にcontrollerを生成するため、同時に利用できないものと思われます。
対応方法
controllerとinitialValueのどちらかのみを利用することでエラーを回避できます。
TextEditingControllerには初期値を設定することができるため、基本的にはcontrollerを利用するで問題ないと思います。
修正前
TextFormField(
controller: TextEditingController(),
initialValue: 'init',
),
修正後
TextFormField(
controller: TextEditingController(text: 'init'),
),
参考:
TextFormField class - material library - Dart API
API docs for the TextFormField class from the material library, for the Dart programming language.

Flutter - 'initialValue == null || controller == null': is not true. error
I'm trying to set an initial value for the text field. But I Can't set the initial value in text form field. I'm getting...


コメント