form.reset during onSubmit ignores new default values
Describe the bug
The issue is that if you use the form's reset function from inside the form's onSubmit with new default values, they will be ignored. This only happens if used in combination with form store-related watches such as "isDirty" From the troubleshooting done by @LeCarbonator , it appears to be a race condition between handleSubmit and reset.
Your minimal, reproducible example
https://stackblitz.com/edit/vitejs-vite-jd2ttqqx?file=src%2FApp.tsx
Steps to reproduce
- Uncheck the checkbox.
- Click the Submit button
- See how the form goes back to the original default values instead of the new ones.
Expected behavior
Since we are calling the reset function with new values, those values should become the new form values.
How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform
- OS: Any
- Browser: Any
- Node Version: 22
TanStack Form adapter
react-form
TanStack Form version
1.18.0
TypeScript version
v5.8.3
Additional context
A chat around this issue can be found here
+1, a workaround for now is to setTimeout(() => form.reset());
+1, a workaround for now is to
setTimeout(() => form.reset());
Unfortunately that doesn't work for me either
@romulovalez @djordje-st The setTimeout strategy works, but the amount of time you need to wait varies.
when we discovered the issue, I had to set a timeout of up to 500ms for it to work.