Minor Changes
- Introduced a Prioritized Default System that ensures consistency between field metadata and form reset behavior. This change prioritizes field-level default values over form-level defaults across
isDefaultValuederivation,form.reset(), andform.resetField(). This ensures that field metadata accurately reflects the state the form would return to upon reset and preventsundefinedfrom being incorrectly treated as a default when a value is explicitly specified. (#2006)
Patch Changes
-
evaluate()incorrectly treated distinct non-plain objects with no own enumerable keys (Temporal types, RegExp, getter-only class instances) as equal because the key-iteration loop vacuously succeeded. A guard now returnsfalsefor such objects, falling back to referential inequality. (#2140) -
exclude undefined from FormState errors type (
427b3d9) -
Prevent synchronous validators from returning Promises (#1987)
-
re-render arrays when length doesn't change but values do (#2172)