Skip to content

Commit c0694b7

Browse files
feat: improve dynamic fields example
1 parent 6b7953e commit c0694b7

File tree

1 file changed

+4
-17
lines changed

1 file changed

+4
-17
lines changed

example/lib/sources/dynamic_fields.dart

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class _DynamicFieldsState extends State<DynamicFields> {
2424
Widget build(BuildContext context) {
2525
return FormBuilder(
2626
key: _formKey,
27+
// IMPORTANT to remove all references from dynamic field when delete
2728
clearValueOnUnregister: true,
2829
child: Column(
2930
children: <Widget>[
@@ -87,28 +88,14 @@ class _DynamicFieldsState extends State<DynamicFields> {
8788
}
8889
}
8990

90-
class NewTextField extends StatefulWidget {
91+
class NewTextField extends StatelessWidget {
9192
const NewTextField({
9293
super.key,
9394
required this.name,
9495
this.onDelete,
95-
this.unregisterField,
9696
});
9797
final String name;
9898
final VoidCallback? onDelete;
99-
final void Function(String name, FormBuilderFieldState field)?
100-
unregisterField;
101-
102-
@override
103-
State<NewTextField> createState() => _NewTextFieldState();
104-
}
105-
106-
class _NewTextFieldState extends State<NewTextField> {
107-
@override
108-
void dispose() {
109-
super.dispose();
110-
// widget.unregisterField?.call(widget.name, this);
111-
}
11299

113100
@override
114101
Widget build(BuildContext context) {
@@ -118,7 +105,7 @@ class _NewTextFieldState extends State<NewTextField> {
118105
children: [
119106
Expanded(
120107
child: FormBuilderTextField(
121-
name: widget.name,
108+
name: name,
122109
validator: FormBuilderValidators.minLength(4),
123110
decoration: const InputDecoration(
124111
label: Text('New field'),
@@ -127,7 +114,7 @@ class _NewTextFieldState extends State<NewTextField> {
127114
),
128115
IconButton(
129116
icon: const Icon(Icons.delete_forever),
130-
onPressed: widget.onDelete,
117+
onPressed: onDelete,
131118
),
132119
],
133120
),

0 commit comments

Comments
 (0)