Inertia.js v3.7.0, released August 31, 2026, gives the <Form> component two new ways to stop a request that is still running. A cancelOnUnmount attribute, available in the Vue, React and Svelte adapters, aborts the submission automatically when the form is removed from the page, for example when a modal closes mid-upload. It defaults to false, so existing forms keep working as before. Separately, a cancel method is now exposed through the component's slot props, its ref, and its form context in all three adapters, so developers can wire up an explicit cancel button next to a submit button. To support this, the core request handling was changed so the onCancelToken callback becomes inactive once a response has arrived, preventing an onCancel event from firing after onSuccess in the common pattern where a successful submit closes the form's parent modal.
<Form action="/avatar" method="post" cancel-on-unmount>
<input type="file" name="avatar" />
<button type="submit">Upload</button>
</Form>The usePoll hook, previously limited to start and stop functions, now also returns a reactive polling value that reflects whether polling is active, seeded from the autoStart option (default true). In Vue it is a Ref<boolean>, in React it uses useState, and in Svelte the hook moved into a .svelte.ts file backed by $state, meaning Svelte users must keep the returned object intact rather than destructuring it to preserve reactivity.
Two router-level bugs were fixed. Once props, which are resolved a single time and cached on the client, previously lost their value when combined with instant visits that render a placeholder page before the real request finishes; the router now carries the remembered once prop and its registry entry onto the placeholder unless the visit supplies its own value. Separately, Inertia's cancellation logic was too aggressive: navigating to a new page used to also cancel unrelated background async visits aimed at other pages. Cancellation now checks the request's origin and path, so only requests tied to the page being left, such as deferred props, partial reloads, router.reload(), and polls, are cancelled, while async visits to other pages run to completion.
Three further fixes: the React adapter stopped showing stale props after Chrome or Firefox duplicated a tab, which triggers a back_forward navigation restore (PR #3196); replaceProp(), appendToProp(), and prependToProp() no longer deep-clone the entire props object, avoiding unnecessary re-renders and copy costs, a fix contributed by Svyatoslav Kryukov (PR #3194); and <Form> no longer throws a TypeError when an input event fires on an already-unmounted form element in React, a first contribution from Niek Nijland (PR #3203). The update installs via npm, for example npm install @inertiajs/vue3@^3.7.0, with equivalent packages for the React and Svelte adapters.




Comments
No comments yet — be the first.
Open the discussion
No account or password needed — just enter your e-mail and we’ll send you a one-time sign-in link. First time here? You’re set up automatically.
Your rating will be applied automatically after you sign in.
Check your inbox
We’ve sent a sign-in link to …. Open it on this device — this tab will sign you in automatically.
Nothing arrived? Check your spam folder — and mark the mail as "Not spam" so it lands in your inbox next time.