Download Latest Version Version 7.87.0 source code.zip (3.5 MB)
Email in envelope

Get an email when there's a new version of React Hook Form

Home / v7.87.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-08-30 3.4 kB
Version 7.87.0 source code.tar.gz 2026-08-30 3.3 MB
Version 7.87.0 source code.zip 2026-08-30 3.5 MB
Totals: 3 Items   6.8 MB 0

✨ Features

setValue already supported shouldTouch; trigger() now does too. This allows you to mark field(s) as touched after manual or programmatic validation, such as validate-on-mount or multi-step form navigation, without needing a setValue workaround:

```tsx // Mark a single field as touched after validating it await trigger('firstName', { shouldTouch: true });

// Mark every mounted field as touched after validating the whole form await trigger(undefined, { shouldTouch: true }); ```

Recursive type helpers (Path, DeepPartial, DeepRequired, FieldErrorsImpl, etc.) previously stopped only at Primitive | BrowserNativeObject. As a result, rich third-party value types such as Dayjs and Decimal could be recursively traversed member-by-member, potentially causing TypeScript to report "Excessive complexity" diagnostics on large form types.

You can now register a type as an opaque leaf via declaration merging:

```tsx import type { Dayjs } from 'dayjs';

declare module 'react-hook-form' { interface OpaqueTypes { dayjs: Dayjs; } } ```

While the registry is empty, types remain identical to the existing behavior. This is purely opt-in.

🐞 Fixes

❤️ Thank You

Thanks to @giaBaoJS, @dfedoryshchev, @Alioth-91, @Masatoshi0227, @modosc, and @bluebill1049 for their contributions! 🎉

Source: README.md, updated 2026-08-30