@@ -24,6 +24,7 @@ class _DynamicFieldsState extends State<DynamicFields> {
24
24
Widget build (BuildContext context) {
25
25
return FormBuilder (
26
26
key: _formKey,
27
+ // IMPORTANT to remove all references from dynamic field when delete
27
28
clearValueOnUnregister: true ,
28
29
child: Column (
29
30
children: < Widget > [
@@ -87,28 +88,14 @@ class _DynamicFieldsState extends State<DynamicFields> {
87
88
}
88
89
}
89
90
90
- class NewTextField extends StatefulWidget {
91
+ class NewTextField extends StatelessWidget {
91
92
const NewTextField ({
92
93
super .key,
93
94
required this .name,
94
95
this .onDelete,
95
- this .unregisterField,
96
96
});
97
97
final String name;
98
98
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
- }
112
99
113
100
@override
114
101
Widget build (BuildContext context) {
@@ -118,7 +105,7 @@ class _NewTextFieldState extends State<NewTextField> {
118
105
children: [
119
106
Expanded (
120
107
child: FormBuilderTextField (
121
- name: widget. name,
108
+ name: name,
122
109
validator: FormBuilderValidators .minLength (4 ),
123
110
decoration: const InputDecoration (
124
111
label: Text ('New field' ),
@@ -127,7 +114,7 @@ class _NewTextFieldState extends State<NewTextField> {
127
114
),
128
115
IconButton (
129
116
icon: const Icon (Icons .delete_forever),
130
- onPressed: widget. onDelete,
117
+ onPressed: onDelete,
131
118
),
132
119
],
133
120
),
0 commit comments