Skip to content

Commit 40cebc5

Browse files
committed
fix FocusNode error
1 parent f7c11cb commit 40cebc5

File tree

1 file changed

+2
-8
lines changed

1 file changed

+2
-8
lines changed

packages/flutter_form_builder/lib/src/form_builder_field.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@ class FormBuilderFieldState<F extends FormBuilderField<T>, T>
122122

123123
bool get enabled => widget.enabled && (_formBuilderState?.enabled ?? true);
124124

125-
bool get _ownsFocusNode => widget.focusNode == null;
126125
late FocusNode effectiveFocusNode;
127126

128127
@override
@@ -133,7 +132,7 @@ class FormBuilderFieldState<F extends FormBuilderField<T>, T>
133132
// Set the initial value
134133
_formBuilderState?.registerField(widget.name, this);
135134

136-
effectiveFocusNode = widget.focusNode ?? FocusNode();
135+
effectiveFocusNode = widget.focusNode ?? FocusNode(debugLabel: widget.name);
137136
// Register a touch handler
138137
effectiveFocusNode.addListener(_touchedHandler);
139138
}
@@ -143,19 +142,14 @@ class FormBuilderFieldState<F extends FormBuilderField<T>, T>
143142
super.didUpdateWidget(oldWidget);
144143
if (widget.focusNode != oldWidget.focusNode) {
145144
effectiveFocusNode.removeListener(_touchedHandler);
146-
if (oldWidget.focusNode == null) {
147-
effectiveFocusNode.dispose();
148-
}
149145
effectiveFocusNode = widget.focusNode ?? FocusNode();
146+
effectiveFocusNode.addListener(_touchedHandler);
150147
}
151148
}
152149

153150
@override
154151
void dispose() {
155152
effectiveFocusNode.removeListener(_touchedHandler);
156-
if (_ownsFocusNode) {
157-
effectiveFocusNode.dispose();
158-
}
159153
_formBuilderState?.unregisterField(widget.name, this);
160154
super.dispose();
161155
}

0 commit comments

Comments
 (0)