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...
コメント