NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1267 most downloaded on pub.dev
This is a model-driven approach to handling form inputs and validations, heavily inspired in Angular Reactive Forms.
Last release 9 months ago
22 Dec 2025
Release timing varies
gaps range from 8 days to 12 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
115 releases · first in 2020
One column per quarter.
Correct hasErrors to check child controls.
hasErrors to check child controls.errors getter performance.Allowed overwriting default value on reset. Added an overwriteDefaultValue parameter to the FormControl.reset() method. When overwriteDefaultValue is
overwriteDefaultValue parameter to the
FormControl.reset() method. When overwriteDefaultValue is true, the value passed to
reset() becomes the new default value for the control.FormControl reset method. Introduced a nonNullable property to the FormControl
constructor to control the behavior of the reset() method. When nonNullable is true
(the default), calling reset() without a value will reset the control to its initial value. When
nonNullable is false, calling reset() without a value will reset the control to null.defaultValue of the FormControl.Fixed an issue where enabling or disabling a FormGroup and FormArray did not correctly propagate the enabled/disabled state to all of its child contro
FormGroup and FormArray did not correctly propagate the enabled/disabled state to all of its child controls.Fix NumberValidator to correctly handle decimal numbers with trailing zeros.
NumberValidator to correctly handle decimal numbers with trailing zeros.NumberValidator to correctly validate numbers with multiple decimal points, single dot, and dot at the end.Add oneOf validator to the list of validators.
oneOf validator to the list of validators.debounced async validator that allows to specify a custom debounce time for a single validator.Validators.delegateAsync() function now accepts an optional debounceTime parameter, defaulting to 0. This allows immediate execution or custom debouncing for asynchronous validation.Add allowNull optional parameter to the CompareValidator.
allowNull optional parameter to the CompareValidator.reset method in AbstractControl (and by inheritance FormControl)
has been updated to correctly handle the disabled state. If the disabled
parameter is not provided to the reset method, the control's disabled
status will now revert to the initial disabled value that was set when
the control was constructed.PopScope.ReactiveForm: onPopInvokedWithResult (used in PopScope), removed deprecated onPopInvoked.
examples project out of the package's code, and uploaded to its own repo.3.29.0.semanticLabel.checkboxSemanticLabel.barrierColor, barrierDismissible, barrierLabel, switchToInputEntryModeIcon, switchToCalendarEntryModeIcon, onDatePickerModeChange.barrierColor, barrierDismissible, barrierLabel, orientation, switchToInputEntryModeIcon, switchToTimerEntryModeIcon.onPopInvokedWithResult (used in PopScope), removed deprecated onPopInvoked.onPopInvokedWithResult (used in PopScope), removed deprecated onPopInvoked.onPopInvokedWithResult (used in PopScope), removed deprecated onPopInvoked.radioScaleFactor.padding, allowedInteraction.padding, trackOutlineWidth.thumbIcon, trackOutlineWidth, trackOutlineColor, padding, applyCupertinoTheme, onFocusChange.groupId, ignorePointers, cursorErrorColor, stylusHandwritingEnabled (removed deprecated scribbleEnabled), onTapAlwaysCalled, onTapUpOutside, statesControllerReactiveSwitchListTile.adaptative to ReactiveSwitchListTile.adaptiveconst keyword to DefaultPatternEvaluator and RegExpPatternEvaluator constructors.Reduce intl dependency constraint to match Flutter 3.16.0.
intl dependency constraint to match Flutter 3.16.0.Removed deprecated onWillPop from ReactiveForm and ReactiveFormBuilder widgets. It was replaced with the PopScope widget.
onWillPop from ReactiveForm and ReactiveFormBuilder widgets.
It was replaced with the PopScope widget.Validators.number allows now to define negative numbers and decimal numbers with the addition
of two optional arguments allowNegatives and allowedDecimals.canPop and onPopInvoked to ReactiveForm and ReactiveFormBuilder widgets.Add default Context Menu to ReactiveTextField.
ReactiveTextField.Add markAsPending() method to AbstractControl to allow set the status to PENDING by demand.
markAsPending() method to AbstractControl to allow set the status
to PENDING by demand.Add missing properties to ReactiveSwitchListTile.adaptative() widget.
ReactiveSwitchListTile.adaptative() widget.showError() to ReactiveCheckbox and ReactiveCheckboxListTile widgets. This does not
display any error messages but it is now compatible with the Flutter builtin behavior of Checkboxes
when Material 3 is enabled (ThemeData(useMaterial3: true)) in the active App Theme.Readme.md file with testing examples in the section
ReactiveForm vs ReactiveFormBuilder which one?Fix an issue with FormGroup and FormArray were recursive Raw Value was not working properly.
FormGroup and FormArray were recursive Raw Value was not working properly.Fix an issue with FormBuilder when trying to build a control with a nullable '?' data type.
FormBuilder when trying to build a control with a nullable '?' data type.FormGroup that was not triggering the event collectionChanges when a control
is removed.FormGroup and FormArray when trying to find a control with a nullable '?'
data type.Update the intl dependency version, because in flutter 3.10, flutter_localizations depends on intl 0.18.0.
flutter_localizations depends on intl 0.18.0.Flutter >= 3.10 required for this version.
All validators have been changed to classes with const constructors.
const constructors.Validators.delegate(...) has been introduced to be used with a custom
validation function.Validators.delegateAsync(...) has been introduced to be used with a custom
async validation functions.Fix the inkwell ripple effect in the ReactiveDropdownField.
Update intl to latest version 0.18.0.
Create new widget ReactiveFocusableFormField as a parent widget for all other widgets that requires to do focus management.
The definition of validation messages is now more consistent.
onTab in ReactiveTextField and onChanged in
ReactiveDropdownField now provides the control as argument of
the callback.onChanged, onEditingComplete to reactive widgets.Reactive Forms is now migrated to Flutter 3.0.0.
Update project to new Android wrappers in order to be able to run the example using latest Android SDK changes.
Add Focus handling for several reactive widgets:
Fix issues in ReactiveDatePicker when control value was before or after the range of firstDate and lastDate
Reactive Forms is now migrated to Flutter 2.8.0.
Expose TextEditingController as a property of the ReactiveTextField for text selection purposes only.
Fix Async Validators that overrides validations errors from Sync Validators
Improve Complex example in the demo application
Improve the Array example in the demo application
Add an example of deleting item from a FormArray in the example folder project.
## Fix - Minor documentation fix.
Add documentation of new advanced reactive widgets.
Converted ReactiveForm widget from Stateful to Stateless widget.
Update the lint code analysis to use the las package lints.
Added optional argument to Validators.mustMatch that allows to define if we want to mark the _matchingControlName_ control as DIRTY when the control i
Added missing props pass through for widgets.
Add minor internal changes for handling focus node in reactive text fields.
Add Flutter sdk version restriction in pubspec.yaml file.
Add method in FormGroup that allows to remove a control by its name.
Fix error when defining a ReactiveTextField with dynamic type and bound the widget with controls other than String.
Add/Clear validators dynamically
Fix exception when focus a control that does not exist in a group
Set ReactiveTextField maxLines as optional nullable argument.
Add minor changes in Validators.min and Validators.max for handlig type checks
Fix the error when defining a ReactiveFormField (related to control value accessor)
Reactive Forms is now migrated to Flutter 2.x.
Add latest version of intl package
Remove Validators String type to fix casts errors when calling _form.control('').validators_ in a control with a non dynamic type validator.
Add minor changes to successfully pass pub dev static analysis.
An enhanced strongly typed system to improve casting at compilation time and improve casting exception handler in runtime. This version was created to
## Fix - Code formatting issues
Validators.pattern now validates against a RegExp instance.
If a control is disabled, then it doesn't fire state change again when call markAsDisabled.
Upgrade Reactive Forms to Flutter 1.20
Set cursor at the end of the text when set value to reactive text field from the FormControl.
Exposes ReactiveSwitchListTile.
Fix code formatting to pass pub static analysis.
Expose focus controller of the FormControl. Now is possible to access UI FocusNode with in a control through control.focusController.focusNode.
Add argument focusNode to ReactiveTextField to provide a custom FocusNode.
Your coding agent can read these notes before it upgrades. Set up the MCP server →