回答編集履歴

3

誤字

2019/10/09 21:59

投稿

popobot
popobot

スコア6586

test CHANGED
@@ -118,4 +118,4 @@
118
118
 
119
119
 
120
120
 
121
- [コード](https://github.com/flutter/flutter/blob/v1.9.1%2Bhotfix.4/packages/flutter/lib/src/material/text_form_field.dart#L217)を読むと、 `TextFormField`も`TextFormField`になっていて、`initState`で`controller`生成しているようです。
121
+ [コード](https://github.com/flutter/flutter/blob/v1.9.1%2Bhotfix.4/packages/flutter/lib/src/material/text_form_field.dart#L217)を読むと、 `TextFormField`も`StatefulWidget`になっていて、`initState`で`controller`生成しているようです。

2

補足

2019/10/09 21:59

投稿

popobot
popobot

スコア6586

test CHANGED
@@ -94,10 +94,28 @@
94
94
 
95
95
 
96
96
 
97
- `TextFormField`のコードを読むと`initialValue`を使った場合、内部で`controller`を生成してしまい、リビルド時に内部の`controller`の値を更新できないので、値が変更されないようでした。
97
+ `TextFormField``initialValue`を使った場合、初期化時に内部で`controller`を生成してしまい、リビルド時に内部の`controller`の値を更新できないので、値が変更されないようでした。
98
98
 
99
99
  なので自前で`controller`を生成して、ビルド時に`_controller.text = _initialValue;`で値を渡してあげればよいようです。
100
100
 
101
101
 
102
102
 
103
103
  ※`controller`を保持して、`dispose`するために、`InputFeild`を`StatelessWidget`から`StatefulWidget`に変えています。
104
+
105
+
106
+
107
+ ----
108
+
109
+
110
+
111
+ 補足
112
+
113
+
114
+
115
+ [公式リファレンス](https://api.flutter.dev/flutter/material/TextFormField-class.html)にもそれっぽいことが書いてありました
116
+
117
+ > If a controller is not specified, initialValue can be used to give the automatically generated controller an initial value.
118
+
119
+
120
+
121
+ [コード](https://github.com/flutter/flutter/blob/v1.9.1%2Bhotfix.4/packages/flutter/lib/src/material/text_form_field.dart#L217)を読むと、 `TextFormField`も`TextFormField`になっていて、`initState`で`controller`生成しているようです。

1

調整

2019/10/09 21:58

投稿

popobot
popobot

スコア6586

test CHANGED
@@ -100,4 +100,4 @@
100
100
 
101
101
 
102
102
 
103
- ※controllerを保持して、disposeするために、`InputFeild`を`StatelessWidget`から`StatefulWidget`に変えています。
103
+ `controller`を保持して、`dispose`するために、`InputFeild`を`StatelessWidget`から`StatefulWidget`に変えています。