回答編集履歴
3
誤字
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`も`
|
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
補足
test
CHANGED
@@ -94,10 +94,28 @@
|
|
94
94
|
|
95
95
|
|
96
96
|
|
97
|
-
`TextFormField`
|
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
調整
test
CHANGED
@@ -100,4 +100,4 @@
|
|
100
100
|
|
101
101
|
|
102
102
|
|
103
|
-
※controllerを保持して、disposeするために、`InputFeild`を`StatelessWidget`から`StatefulWidget`に変えています。
|
103
|
+
※`controller`を保持して、`dispose`するために、`InputFeild`を`StatelessWidget`から`StatefulWidget`に変えています。
|