PackageTrack
Sign in Get early access

reactive_forms

This is a model-driven approach to handling form inputs and validations, heavily inspired in Angular Reactive Forms.

18.2.2 80K downloads/mo #1216 most downloaded on pub.dev joanpablo/reactive_forms

What this package is like to depend on

Last release 8 months ago

22 Dec 2025

Release timing varies

gaps range from 8 days to 12 months

Nearly every release is documented

notes for 115 of 115 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

115 releases · first in 2020

3 releases in the last 12 months

see the full history below

Release timeline

115 releases · Jul 2020 to Dec 2025
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 115
  1. 18.2.2 22 Dec 2025
    Release notes

    Fixes

    • Correct hasErrors to check child controls.

    Enhances

    • Improve errors getter performance.
    • Optimize list and map access.
    Open source →
  2. 18.2.0 21 Nov 2025
    Release notes

    Features

    • Allowed overwriting default value on reset. Added an overwriteDefaultValue parameter to the FormControl.reset() method. When overwriteDefaultValue is true, the value passed to reset() becomes the new default value for the control.
    • Enhanced 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.
    • Exposed defaultValue of the FormControl.
    Open source →
  3. 18.1.2 19 Nov 2025
    Release notes

    Fixes

    • Fixed an issue where enabling or disabling a FormGroup and FormArray did not correctly propagate the enabled/disabled state to all of its child controls.
    Open source →
  4. 18.1.1 01 Jul 2025
    Release notes

    Fixes

    • Fix NumberValidator to correctly handle decimal numbers with trailing zeros.
    • Improve NumberValidator to correctly validate numbers with multiple decimal points, single dot, and dot at the end.
    Open source →
  5. 18.1.0 01 Jul 2025
    Release notes
    • Add oneOf validator to the list of validators.
    • Add debounced async validator that allows to specify a custom debounce time for a single validator.
    • The Validators.delegateAsync() function now accepts an optional debounceTime parameter, defaulting to 0. This allows immediate execution or custom debouncing for asynchronous validation.
    Open source →
  6. 18.0.1 13 Jun 2025
    Release notes

    Features

    • Add allowNull optional parameter to the CompareValidator.
    • The FormControl.reset() method has been updated to align with the common expectation that resetting a control without specifying a new value should revert it to its initial state.
    • The 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.

    Fixes

    • Fixed broken reactivity with the PopScope.
    Open source →
  7. 18.0.0 23 Apr 2025
    Release notes
    • Moved examples project out of the package's code, and uploaded to its own repo.

    Breaking changes

    • Upgraded Flutter minimum version to 3.29.0.
    • Added missing fields to widgets:
      • ReactiveCheckbox: semanticLabel.
      • ReactiveCheckboxListTile: checkboxSemanticLabel.
      • ReactiveDatePicker: barrierColor, barrierDismissible, barrierLabel, switchToInputEntryModeIcon, switchToCalendarEntryModeIcon, onDatePickerModeChange.
      • ReactiveTimePicker: barrierColor, barrierDismissible, barrierLabel, orientation, switchToInputEntryModeIcon, switchToTimerEntryModeIcon.
      • ReactiveForm: onPopInvokedWithResult (used in PopScope), removed deprecated onPopInvoked.
      • ReactiveFormPopScope: onPopInvokedWithResult (used in PopScope), removed deprecated onPopInvoked.
      • ReactiveFormBuilder: onPopInvokedWithResult (used in PopScope), removed deprecated onPopInvoked.
      • ReactiveRadioListTile: radioScaleFactor.
      • ReactiveSlider: padding, allowedInteraction.
      • ReactiveSwitch: padding, trackOutlineWidth.
      • ReactiveSwitch.adaptive: thumbIcon, trackOutlineWidth, trackOutlineColor, padding, applyCupertinoTheme, onFocusChange.
      • ReactiveTextField: groupId, ignorePointers, cursorErrorColor, stylusHandwritingEnabled (removed deprecated scribbleEnabled), onTapAlwaysCalled, onTapUpOutside, statesController
    • Renamed ReactiveSwitchListTile.adaptative to ReactiveSwitchListTile.adaptive

    Fixes

    • Added const keyword to DefaultPatternEvaluator and RegExpPatternEvaluator constructors.
    Open source →
  8. 17.0.1 10 May 2024
    Release notes
    • Reduce intl dependency constraint to match Flutter 3.16.0.
    • NumberValidator allows null values.
    Open source →
  9. 17.0.0 30 Mar 2024
    Release notes

    Breaking changes

    • Removed deprecated 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.

    Features

    • Add canPop and onPopInvoked to ReactiveForm and ReactiveFormBuilder widgets.
    Open source →
  10. 16.1.1 20 Oct 2023
    Release notes

    Fixes

    • Add default Context Menu to ReactiveTextField.
    Open source →
  11. 16.1.0 21 Aug 2023
    Release notes

    Features

    • Add markAsPending() method to AbstractControl to allow set the status to PENDING by demand.
    Open source →
  12. 16.0.4 13 Aug 2023
    Release notes

    Fixes

    • Add missing properties to ReactiveSwitchListTile.adaptative() widget.
    • Add 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.

    Enhances

    • Update Readme.md file with testing examples in the section ReactiveForm vs ReactiveFormBuilder which one?
    Open source →
  13. 16.0.3 25 Jul 2023
    Release notes

    Fixes

    • Fix an issue with FormGroup and FormArray were recursive Raw Value was not working properly.
    Open source →
  14. 16.0.2 16 Jul 2023
    Release notes

    Fixes

    • Fix an issue with FormBuilder when trying to build a control with a nullable '?' data type.
    • Fix an issue with FormGroup that was not triggering the event collectionChanges when a control is removed.
    • Fix an issue with FormGroup and FormArray when trying to find a control with a nullable '?' data type.
    Open source →
  15. 16.0.1 07 Jul 2023
    Release notes

    Fixes

    • Update the intl dependency version, because in flutter 3.10, flutter_localizations depends on intl 0.18.0.
    Open source →
  16. 16.0.0 25 Jun 2023
    Release notes

    Breaking Changes

    • Flutter >= 3.10 required for this version.

    Fixes

    • Updated some documentation.
    • Expose validator classes to allow direct instantiation.
    Open source →
  17. 15.0.0 25 May 2023
    Release notes

    Breaking Changes

    • All validators have been changed to classes with const constructors.
    • The Asynchronous Validator is now a class from where any custom async validator can inherit.

    Features

    • A new validator Validators.delegate(...) has been introduced to be used with a custom validation function.
    • A new validator Validators.delegateAsync(...) has been introduced to be used with a custom async validation functions.
    Open source →
  18. 14.3.0 01 Apr 2023
    Release notes
    • Fix the inkwell ripple effect in the ReactiveDropdownField.
    • Add some other minor fixes.
    Open source →
  19. 14.2.0 30 Jan 2023
    Release notes
    • Update intl to latest version 0.18.0.
    Open source →
  20. 14.1.0 07 Aug 2022
    Release notes

    Enhances

    • Create new widget ReactiveFocusableFormField as a parent widget for all other widgets that requires to do focus management.
    Open source →
  21. 14.0.0 04 Aug 2022
    Release notes

    Breaking Changes

    • The definition of validation messages is now more consistent.
    • Methods like onTab in ReactiveTextField and onChanged in ReactiveDropdownField now provides the control as argument of the callback.

    Enhances

    • Add events like onChanged, onEditingComplete to reactive widgets.

    Features

    • Add widget ReactiveFormConfig to globally define validation messages at Flutter application level. This reliefs the need to define validation messages in each reactive widget.
    Open source →
  22. 13.0.0 20 May 2022
    Release notes

    Breaking Changes

    • Reactive Forms is now migrated to Flutter 3.0.0.
    Open source →
  23. 12.0.0 11 Apr 2022
    Release notes

    Fix

    • Update project to new Android wrappers in order to be able to run the example using latest Android SDK changes.
    Open source →
  24. 11.1.0 11 Apr 2022
    Release notes

    Enhances

    • Add Focus handling for several reactive widgets:
      • ReactiveSlider
      • ReactiveSwitch
      • ReactiveRadio
      • ReactiveRadioListTile
      • ReactiveCheckbox
      • ReactiveCheckboxListTile
    Open source →
  25. 11.0.1 31 Jan 2022
    Release notes

    Fix

    • Fix issues in ReactiveDatePicker when control value was before or after the range of firstDate and lastDate

    Enhances

    • Add optional argument initialDate to the ReactiveDatePicker.
    Open source →
  26. 11.0.0 27 Dec 2021
    Release notes

    Breaking Changes

    • Reactive Forms is now migrated to Flutter 2.8.0.

    Enhances

    • Update reactive widgets with extra properties presents in Flutter 2.8.0.
    Open source →
  27. 10.7.0 27 Dec 2021
    Release notes

    Features

    • Expose TextEditingController as a property of the ReactiveTextField for text selection purposes only.
    Open source →
  28. 10.6.8 22 Dec 2021
    Release notes

    Fix

    • Fix Async Validators that overrides validations errors from Sync Validators
    Open source →
  29. 10.6.7 19 Dec 2021
    Release notes

    Enhances

    • Improve Complex example in the demo application
    Open source →
  30. 10.6.6 03 Dec 2021
    Release notes

    Enhances

    • Improve the Array example in the demo application
    • Better exception handler when creating FormGroups with controls that contains character '.' in the name of the control.
    Open source →
  31. 10.6.5 21 Nov 2021
    Release notes

    Enhances

    • Add an example of deleting item from a FormArray in the example folder project.
    • Make public the previously private class InheritedStreamer
    Open source →
  32. 10.6.4 29 Oct 2021
    Release notes

    Fix

    • Minor documentation fix.
    Open source →
  33. 10.6.3 29 Oct 2021
    Release notes

    Enhances

    • Add documentation of new advanced reactive widgets.

    Fix

    • Minor documentation fix.
    Open source →
  34. 10.6.2 22 Sep 2021
    Release notes

    Enhances

    • Converted ReactiveForm widget from Stateful to Stateless widget.
    Open source →
  35. 10.6.1 22 Sep 2021
    Release notes

    Enhances

    • Update the lint code analysis to use the las package lints.
    • Minor internal code checks and improvements.
    Open source →
  36. 10.6.0 05 Aug 2021
    Release notes

    Enhances

    • Added optional argument to Validators.mustMatch that allows to define if we want to mark the matchingControlName control as DIRTY when the control is invalid. See related issue.
    • Minor changes in model classes that allows to create custom AbstractControl implementations
    Open source →
  37. 10.5.0 16 Jul 2021
    Release notes

    Enhances

    • Added missing props pass through for widgets.
    Open source →
  38. 10.4.1 30 May 2021
    Release notes

    Enhances

    • Add minor internal changes for handling focus node in reactive text fields.
    Open source →
  39. 10.4.0 29 May 2021
    Release notes

    Fix

    • Add Flutter sdk version restriction in pubspec.yaml file.
    • Fix Validators.compare in release mode that has different behavior from debug mode.
    Open source →
  40. 10.3.0 19 May 2021
    Release notes

    Features

    • Add method in FormGroup that allows to remove a control by its name.

    Enhances

    • Add missing extra properties to ReactiveRadioListTile and ReactiveRadio widgets.
    • Add a SliderIntValueAccessor that allows ReactiveSlider to bind to controls of type int.
    Open source →
  41. 10.2.0 13 Apr 2021
    Release notes

    Fix

    • Fix error when defining a ReactiveTextField with dynamic type and bound the widget with controls other than String.

    Enhances

    • Add the optionally extra argument autoValidate to the method AbstractControl.setValidators to recalculate the validaity of the control after set the new validators without explicitly call updateValueAndValidity on that control.
    Open source →
  42. 10.1.0 13 Apr 2021
    Release notes

    Features

    • Add/Clear validators dynamically

    Fix

    • Fix error when defining a ReactiveTextField without specifying a model data type

    Enhances

    • Change the data type of ValidatorFunction to returns Map<String, dynamic> instead of Map<String, Object>
    Open source →
  43. 10.0.4 11 Apr 2021
    Release notes

    Fix

    • Fix exception when focus a control that does not exist in a group

    Enhances

    • Better type definition in a control value accessor within a ReactiveFormField
    Open source →
  44. 10.0.3 28 Mar 2021
    Release notes

    Fix

    • Set ReactiveTextField maxLines as optional nullable argument.
    Open source →
  45. 10.0.2 25 Mar 2021
    Release notes

    Enhances

    • Add minor changes in Validators.min and Validators.max for handlig type checks
    • Add minor changes in ReactiveValueListenableBuilder for handlig type checks
    Open source →
  46. 10.0.1 24 Mar 2021
    Release notes

    Fix

    • Fix the error when defining a ReactiveFormField<dynamic> (related to control value accessor)
    Open source →
  47. 10.0.0 24 Mar 2021
    Release notes

    Breaking changes

    • Reactive Forms is now migrated to Flutter 2.x.
    • Reactive Forms is now Null-safety.
    • New Definitions in Custom Reactive Widgets. ReactiveFormField now defines the data type of the model (control) and the data type of the view (widget).
    • Validators.requiredTrue now has the 'requiredTrue' validation message and not 'requiredEquals' as in previous versions.

    Features

    • Now you can specify a different validation message to the Validators.pattern validator.
    Open source →
  48. 9.1.0 04 Mar 2021
    Release notes

    Enhances

    • Add latest version of intl package
    Open source →
  49. 9.0.2 03 Mar 2021
    Release notes

    Fix

    • Remove Validators String type to fix casts errors when calling form.control('').validators in a control with a non dynamic type validator.
    Open source →
  50. 9.0.1 01 Mar 2021
    Release notes

    Fix

    • Add minor changes to successfully pass pub dev static analysis.
    • Add Library documentation.
    Open source →
  51. 9.0.0 27 Feb 2021
    Release notes

    Breaking changes

    • An enhanced strongly typed system to improve casting at compilation time and improve casting exception handler in runtime. This version was created to be compatible with analysis options in "implicit-casts: false" and "implicit-dynamic: false".
    Open source →
  52. 8.0.3 21 Jan 2021
    Release notes

    Fix

    • Code formatting issues
    Open source →
  53. 8.0.2 21 Jan 2021
    Release notes

    Fix

    • Validators.pattern now validates against a RegExp instance.
    Open source →
  54. 8.0.1 08 Jan 2021
    Release notes

    Fix

    • If a control is disabled, then it doesn't fire state change again when call markAsDisabled.
    Open source →
  55. 8.0.0 06 Jan 2021
    Release notes

    Breaking changes

    • Upgrade Reactive Forms to Flutter 1.20

    Features

    • Add intl package and and optional argument to DateTimeValueAccessor to specify the format of the date.
    • Add some extra properties to reactive forms widgets.
    Open source →
  56. 7.6.3 26 Dec 2020
    Release notes

    Fix

    • Set cursor at the end of the text when set value to reactive text field from the FormControl.
    Open source →
  57. 7.6.2 13 Dec 2020
    Release notes

    Fix

    • Exposes ReactiveSwitchListTile.
    Open source →
  58. 7.6.1 09 Dec 2020
    Release notes

    Fix

    • Fix code formatting to pass pub static analysis.
    Open source →
  59. 7.6.0 09 Dec 2020
    Release notes

    Features

    • Expose focus controller of the FormControl. Now is possible to access UI FocusNode with in a control through control.focusController.focusNode.
    Open source →
  60. 7.5.0 09 Dec 2020
    Release notes

    Features

    • Add argument focusNode to ReactiveTextField to provide a custom FocusNode.

    Enhances

    • Add some improvement to TimeOfDayValueAccessor.
    • Add some improvement to example application.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive