diff --git a/packages/flutter/lib/src/material/input.dart b/packages/flutter/lib/src/material/input.dart
index 011edfb4e12..84ac0e73ffe 100644
--- a/packages/flutter/lib/src/material/input.dart
+++ b/packages/flutter/lib/src/material/input.dart
@@ -112,9 +112,9 @@ class _InputState extends State {
bool focused = focusContext != null && Focus.at(focusContext, autofocus: config.autofocus);
if (_formData == null)
_formData = _FormFieldData.maybeCreate(context, this);
- InputValue value = config.value ?? _formData?.value ?? InputValue.empty;
- ValueChanged onChanged = config.onChanged ?? _formData?.onChanged;
- ValueChanged onSubmitted = config.onSubmitted ?? _formData?.onSubmitted;
+ InputValue value = _formData?.value ?? config.value ?? InputValue.empty;
+ ValueChanged onChanged = _formData?.onChanged ?? config.onChanged;
+ ValueChanged onSubmitted = _formData?.onSubmitted ?? config.onSubmitted;
String errorText = config.errorText;
if (errorText == null && config.formField != null && config.formField.validator != null)
@@ -260,9 +260,10 @@ class _InputState extends State {
class _FormFieldData {
_FormFieldData(this.inputState) {
assert(field != null);
+ value = inputState.config.value ?? new InputValue();
}
- InputValue value = new InputValue();
+ InputValue value;
final _InputState inputState;
FormField get field => inputState.config.formField;