Packages

react-hook-form

7.91.0 · 23 Oct 2026MIT42M / weekRepositoryHomepagenpmAtom feed

Your version

595 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.

  1. 7.91.0

    23 Oct 2026
    • Improve performance of Form by reading control from context to avoid unnecessary re-renders

    • Improve performance of getValues by avoiding unnecessary shallow copies

    • Simplify multipart content-type header filtering

  2. 7.90.0

    11 Oct 2026
    • Improve performance of watch, subscribe, scoped subscriptions, dirty field checks and form state fan-out

    • Reduce bundle size

    • Fields named after Object.prototype members not being marked as touched on blur and setValue

  3. 7.89.0

    26 Sep 2026
    • Add optional @types/react peer dependency

    • validateField calling setCustomValidity on refs that don't implement it under native validation

    • Form-level validate running a stale function instead of the latest one

  4. 7.88.0

    11 Sep 2026
    • <ErrorMessage /> component for rendering a field's validation error

    • setValue dirty state comparison ignoring valueAs* / setValueAs transforms

    • Nested delayError timers not being cancelled when a parent is cleared or unregistered

  5. 7.87.0

    30 Aug 2026
    • shouldTouch option for trigger()

    • OpaqueTypes registry for opaque leaf types

    • Inconsistent behavior among useController().field.onChange()-like APIs

  6. 7.86.0

    21 Aug 2026
    • Type-safe getErrors method

    • Improve createFormControl

    • Improve clone object check

  7. 7.85.0

    8 Aug 2026
    • Support <Activity />

    • getFieldState error resolution from a field path

    • useWatch discarding useForm({ defaultValues }) in favor of its own defaultValue before the form mounts

  8. 7.84.0

    1 Aug 2026
    • handleSubmit returns the typed result of the onValid callback instead of discarding it

    • <Form /> supports a function-based action (Server Action style) in addition to URL-string actions

    • Improve performance and reduce bundle size

  9. 7.83.0

    25 Jul 2026
    • Enhance getEventValue to handle file inputs

    • Improve TypeScript performance with a hard cap at 10 levels of recursive type depth

    • Clear internal errors state on argument-less clearErrors()

  10. 7.82.0

    18 Jul 2026
    • Opt-in delayError option for setValue to delay validation error updates

    • Expose resetDefaultValues through form context

    • setValue with shouldDirty not updating dirty state correctly when the form is disabled

  11. 7.81.0

    5 Jul 2026
    • security

      Harden unset() against prototype-path traversal (__proto__ / constructor / prototype), matching the existing set() guard

    • FieldArray component built on useFieldArray for controlled field-array rendering

    • clearErrors changing the name value from form.subscribe

  12. 7.80.0

    20 Jun 2026
    • disabled prop support for individual fields within useFieldArray

    • deepEqual incorrectly treating empty array `` and empty plain object {} as equal

    • Improve onChange, setValid, dirty checking, setValue, and setValues performance

  13. 7.79.0

    13 Jun 2026
    • disabled option to useFieldArray

    • Controller onChange promise return type

    • deepEqual false positives with shared object references

  14. 7.78.0

    7 Jun 2026
    • Recover Controller fields after reset without rerender (RN issue #13455)

    • useFormState().isDirty race with async resolver in onChange mode

    • Use reactive values prop over defaultValues when shouldUnregister is true

  15. 7.77.0

    31 May 2026
    • security

      Harden get() against prototype-path traversal (__proto__ / constructor / prototype)

    • resetDefaultValues API

    • Stale isDirty in subscribe payload after reset(..., { keepValues: true })

  16. 7.76.1

    23 May 2026

    Reading the note…

  17. 7.76.0

    16 May 2026
    • Improve isDirty sync with dirtyFields state

    • Preserve formState.defaultValues when useFieldArray and watch are used together

    • Preserve nested resolver field-array errors in trigger()

  18. 7.75.0

    2 May 2026
    • Improve getDirtyFields to prune empty fields

    • TypeScript 6.0 support

    • Include setValues in FormProvider context value

  19. 7.74.0

    25 Apr 2026
    • setValues API

    • Preserve previous field value when useController name changes

    • Handle null parent when unregistering nested field

  20. 7.73.1

    20 Apr 2026

    Reading the note…

  21. 7.73.0

    18 Apr 2026
    • Improve subscribe API performance

    • Memoize submit handler

    • Improve deepEqual performance

  22. 7.72.1

    3 Apr 2026

    Reading the note…

  23. 7.72.0

    22 Mar 2026
    • Built-in form-level validate option

    • Subscribe formState to track submit state

    • Checkbox form validation ignored with native validation

  24. 7.71.2

    20 Feb 2026

    Reading the note…

  25. 7.71.1

    13 Jan 2026

    Reading the note…

  26. 7.71.0

    11 Jan 2026
    • Separate control context to prevent unnecessary rerenders

    • Memoize FormProvider context value to prevent unnecessary rerenders

    • Update isValid when field disabled state changes

  27. 7.70.0

    4 Jan 2026
    • Prevent field array ghost elements with keepDirtyValues

    • Improve watch return types

    • Improve invalid date handling in deepEqual and validation

  28. 7.69.0

    20 Dec 2025
    • security

      Security: CVE-2025-67779, CVE-2025-55184, CVE-2025-55183, CVE-2025-55182

    • Align <Watch /> API with useWatch

    • Preserve isValid state when keepIsValid option is used

  29. 7.68.0

    3 Dec 2025
    • <FormStateSubscribe /> component

    • Clear validation errors synchronously in reset() to fix Next.js 16 Server Actions issue

  30. 7.67.0

    28 Nov 2025
    • exact option for useController props

    • Allow undefined value with async defaultValues in Controller

    • Correct PathValueImpl type inference

  31. 7.66.1

    17 Nov 2025

    Reading the note…

  32. 7.66.0

    31 Oct 2025
    • useWatch and useController now react to name prop changes

    • watch() returning undefined immediately after reset()

    • Correct render function parameter typing for <Watch /> component

  33. 7.65.0

    10 Oct 2025
    • <Watch /> component

    • Respect parent-provided useFieldArray rules

    • getDirtyFields submit fields with null values when using useForm

  34. 7.64.0

    4 Oct 2025
    • Support optional array fields in PathValueImpl type

    • Preserve Controller's defaultValue with shouldUnregister prop

  35. 7.63.0

    19 Sep 2025

    Reading the note…

  36. 7.62.0

    1 Aug 2025

    Reading the note…

  37. 7.61.1

    24 Jul 2025

    Reading the note…

  38. 7.61.0

    23 Jul 2025

    Reading the note…

  39. 7.60.0

    4 Jul 2025

    Reading the note…

  40. 7.59.0

    28 Jun 2025

    Reading the note…

  41. 7.58.1

    17 Jun 2025

    Reading the note…

  42. 7.58.0

    15 Jun 2025

    Reading the note…

  43. 7.57.0

    1 Jun 2025

    Reading the note…

  44. 7.56.4

    17 May 2025

    Reading the note…

  45. 7.56.3

    7 May 2025

    Reading the note…

  46. 7.56.2

    3 May 2025

    Reading the note…

  47. 7.56.1

    22 Apr 2025

    Reading the note…

  48. 7.56.0

    20 Apr 2025

    Reading the note…

  49. 7.55.0

    28 Mar 2025

    Reading the note…

  50. 7.54.2

    20 Dec 2024

    Reading the note…