Skip to content

Commit 1b1f832

Browse files
committed
Fix bug "NoSuchMethodError: invalid member on null: 'initialValue'" when fields not wrapped in ForrmBuilder
1 parent d785b69 commit 1b1f832

27 files changed

+48
-92
lines changed

example/lib/main.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class MyHomePageState extends State<MyHomePage> {
4444

4545
final ValueChanged _onChanged = (val) => print(val);
4646
var genderOptions = ['Male', 'Female', 'Other'];
47+
final _ageController = TextEditingController(text: '45');
4748

4849
@override
4950
Widget build(BuildContext context) {
@@ -261,6 +262,7 @@ class MyHomePageState extends State<MyHomePage> {
261262
),
262263
FormBuilderTextField(
263264
attribute: 'age',
265+
controller: _ageController,
264266
decoration: const InputDecoration(
265267
labelText:
266268
'This value is passed along to the [Text.maxLines] attribute of the [Text] widget used to display the hint text.',

lib/src/fields/form_builder_checkbox.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class _FormBuilderCheckboxState extends State<FormBuilderCheckbox> {
5555
_formState = FormBuilder.of(context);
5656
_formState?.registerFieldKey(widget.attribute, _fieldKey);
5757
_initialValue = widget.initialValue ??
58-
(_formState.initialValue.containsKey(widget.attribute)
58+
((_formState?.initialValue?.containsKey(widget.attribute) ?? false)
5959
? _formState.initialValue[widget.attribute]
6060
: null);
6161
super.initState();
@@ -112,9 +112,7 @@ class _FormBuilderCheckboxState extends State<FormBuilderCheckbox> {
112112
} else {
113113
_formState?.setAttributeValue(widget.attribute, val);
114114
}
115-
if (widget.onSaved != null) {
116-
widget.onSaved(transformed ?? val);
117-
}
115+
widget.onSaved?.call(transformed ?? val);
118116
},
119117
builder: (FormFieldState<dynamic> field) {
120118
return InputDecorator(

lib/src/fields/form_builder_checkbox_group.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class _FormBuilderCheckboxGroupState<T>
9393
_formState = FormBuilder.of(context);
9494
_formState?.registerFieldKey(widget.attribute, _fieldKey);
9595
_initialValue = widget.initialValue ??
96-
(_formState.initialValue.containsKey(widget.attribute)
96+
((_formState?.initialValue?.containsKey(widget.attribute) ?? false)
9797
? _formState.initialValue[widget.attribute]
9898
: null);
9999
super.initState();

lib/src/fields/form_builder_checkbox_list.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class _FormBuilderCheckboxListState extends State<FormBuilderCheckboxList> {
5555
_formState = FormBuilder.of(context);
5656
_formState?.registerFieldKey(widget.attribute, _fieldKey);
5757
_initialValue = widget.initialValue ??
58-
(_formState.initialValue.containsKey(widget.attribute)
58+
((_formState?.initialValue?.containsKey(widget.attribute) ?? false)
5959
? _formState.initialValue[widget.attribute]
6060
: null);
6161
super.initState();
@@ -118,9 +118,7 @@ class _FormBuilderCheckboxListState extends State<FormBuilderCheckboxList> {
118118
} else {
119119
_formState?.setAttributeValue(widget.attribute, val);
120120
}
121-
if (widget.onSaved != null) {
122-
widget.onSaved(transformed ?? val);
123-
}
121+
widget.onSaved?.call(transformed ?? val);
124122
},
125123
builder: (FormFieldState<dynamic> field) {
126124
final checkboxList = <Widget>[];

lib/src/fields/form_builder_chips_choice.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class _FormBuilderChoiceChipState extends State<FormBuilderChoiceChip> {
8282
_formState = FormBuilder.of(context);
8383
_formState?.registerFieldKey(widget.attribute, _fieldKey);
8484
_initialValue = widget.initialValue ??
85-
(_formState.initialValue.containsKey(widget.attribute)
85+
((_formState?.initialValue?.containsKey(widget.attribute) ?? false)
8686
? _formState.initialValue[widget.attribute]
8787
: null);
8888
super.initState();
@@ -112,9 +112,7 @@ class _FormBuilderChoiceChipState extends State<FormBuilderChoiceChip> {
112112
} else {
113113
_formState?.setAttributeValue(widget.attribute, val);
114114
}
115-
if (widget.onSaved != null) {
116-
widget.onSaved(transformed ?? val);
117-
}
115+
widget.onSaved?.call(transformed ?? val);
118116
},
119117
builder: (FormFieldState<dynamic> field) {
120118
return InputDecorator(

lib/src/fields/form_builder_chips_filter.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class _FormBuilderFilterChipState extends State<FormBuilderFilterChip> {
9292
_formState = FormBuilder.of(context);
9393
_formState?.registerFieldKey(widget.attribute, _fieldKey);
9494
_initialValue = widget.initialValue ??
95-
(_formState.initialValue.containsKey(widget.attribute)
95+
((_formState?.initialValue?.containsKey(widget.attribute) ?? false)
9696
? _formState.initialValue[widget.attribute]
9797
: null);
9898
super.initState();
@@ -122,9 +122,7 @@ class _FormBuilderFilterChipState extends State<FormBuilderFilterChip> {
122122
} else {
123123
_formState?.setAttributeValue(widget.attribute, val);
124124
}
125-
if (widget.onSaved != null) {
126-
widget.onSaved(transformed ?? val);
127-
}
125+
widget.onSaved?.call(transformed ?? val);
128126
},
129127
builder: (FormFieldState<dynamic> field) {
130128
return InputDecorator(

lib/src/fields/form_builder_chips_input.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ class _FormBuilderChipsInputState extends State<FormBuilderChipsInput> {
7575
_formState = FormBuilder.of(context);
7676
_formState?.registerFieldKey(widget.attribute, _fieldKey);
7777
_initialValue = widget.initialValue ??
78-
(_formState.initialValue.containsKey(widget.attribute)
78+
((_formState?.initialValue?.containsKey(widget.attribute) ?? false)
7979
? _formState.initialValue[widget.attribute]
8080
: null);
8181
super.initState();
@@ -105,9 +105,7 @@ class _FormBuilderChipsInputState extends State<FormBuilderChipsInput> {
105105
} else {
106106
_formState?.setAttributeValue(widget.attribute, val);
107107
}
108-
if (widget.onSaved != null) {
109-
widget.onSaved(transformed ?? val);
110-
}
108+
widget.onSaved?.call(transformed ?? val);
111109
},
112110
builder: (FormFieldState<dynamic> field) {
113111
return ChipsInput(

lib/src/fields/form_builder_color_picker.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ class _FormBuilderColorPickerState extends State<FormBuilderColorPicker> {
125125
_formState = FormBuilder.of(context);
126126
_formState?.registerFieldKey(widget.attribute, _fieldKey);
127127
_initialValue = widget.initialValue ??
128-
(_formState.initialValue.containsKey(widget.attribute)
128+
((_formState?.initialValue?.containsKey(widget.attribute) ?? false)
129129
? _formState.initialValue[widget.attribute]
130130
: null);
131131
_textEditingController =
@@ -152,9 +152,7 @@ class _FormBuilderColorPickerState extends State<FormBuilderColorPicker> {
152152
} else {
153153
_formState?.setAttributeValue(widget.attribute, val);
154154
}
155-
if (widget.onSaved != null) {
156-
widget.onSaved(transformed ?? val);
157-
}
155+
widget.onSaved?.call(transformed ?? val);
158156
},
159157
autovalidate: widget.autovalidate ?? false,
160158
builder: (FormFieldState<Color> field) {

lib/src/fields/form_builder_country_picker.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,7 @@ class _FormBuilderCountryPickerState extends State<FormBuilderCountryPicker> {
9696
} else {
9797
_formState?.setAttributeValue(widget.attribute, val.name);
9898
}
99-
if (widget.onSaved != null) {
100-
widget.onSaved(transformed ?? val.name);
101-
}
99+
widget.onSaved?.call(transformed ?? val);
102100
},
103101
builder: (FormFieldState<Country> field) {
104102
return GestureDetector(

lib/src/fields/form_builder_date_range_picker.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ class FormBuilderDateRangePickerState
163163
_formState = FormBuilder.of(context);
164164
_formState?.registerFieldKey(widget.attribute, _fieldKey);
165165
_initialValue = _currentValue = widget.initialValue ??
166-
(_formState.initialValue.containsKey(widget.attribute)
166+
((_formState?.initialValue?.containsKey(widget.attribute) ?? false)
167167
? _formState.initialValue[widget.attribute]
168168
: []);
169169
_controller = TextEditingController(
@@ -196,9 +196,7 @@ class FormBuilderDateRangePickerState
196196
} else {
197197
_formState?.setAttributeValue(widget.attribute, val);
198198
}
199-
if (widget.onSaved != null) {
200-
widget.onSaved(transformed ?? val);
201-
}
199+
widget.onSaved?.call(transformed ?? val);
202200
},
203201
autovalidate: widget.autovalidate ?? false,
204202
builder: (FormFieldState<List<DateTime>> field) {

0 commit comments

Comments
 (0)