Closed dhulme closed 3 months ago
I have the same issue here.
Interestingly, it works if agePreprocess
condition is the first property of the schema object.
const SignupSchema = z.object({
- ageCoerce,
- agePreprocess,
+ agePreprocess,
+ ageCoerce,
});
That is interesting. I can confirm the same behaviour.
@dhulme
I have the same issue. I downgraded the zod version from 3.22.3 to 3.21.4 and the issue was resolved, so I would like to share it.
Codesandbox link (Changed zod version from 3.22.3 to 3.21.4) https://codesandbox.io/s/react-hook-form-zod-preprocess-forked-cqm66q
Update: I have also opened an issue on the zod repository.
We have found the same behavior with the fields being order-depdendent. We replaced our preprocessors with transforms, and they work similarly to how the preprocessors worked in 3.21.4. Downgrading is not an option for us due to a CVE in 3.21.4 our cyber team flagged.
@dhulme
The issue commented on https://github.com/react-hook-form/resolvers/issues/635#issuecomment-1778665491 has been resolved by the following pr fix for zod, so I would like to share it.
And this fix is included in v3.23.0 of zod.
@stackline Confirmed as fixed, thanks!
Describe the bug Using z.preprocess() instead of z.coerce() in a validation schema does not generate an error. When using zod directly, both of these approaches generate the same error.
To Reproduce Steps to reproduce the behavior:
Codesandbox link (Required) https://codesandbox.io/s/react-hook-form-zod-preprocess-mn8sy4?file=/src/index.js
Expected behavior An error should be generated
Screenshots If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Additional context Add any other context about the problem here.