
Personal Experience with Ant Forms
A candid look at Ant Design's form library for React — what it does well, where it falls short, and whether you should reach for Formik or React Hook Form instead.
Ant Design provides a comprehensive form solution for React applications. After using it in production, here is an honest assessment of its strengths and the friction points you are likely to encounter.
What It Does Well
The library automatically manages form state and validation just by using its components in a recommended way — no manual wiring is required. It provides solid customization options, a programmatic API, and integrates seamlessly with Ant Design's own input components.

Difficult to Watch Whole Form Changes
Most form solutions provide either a reactive values object that re-renders the component on change, or a convenient watch function. Ant Form's approach is more limited:
- Watch functionality only works inside
Form.Itemrender functions, which means you cannot call hooks inside them - You cannot specify which fields trigger re-renders, leading to potential performance issues
- Programmatic value changes (via
form.setFieldsValue) bypass external monitoring mechanisms

Concept of Field Registration
Ant Form works in such a way that it registers fields on mount, and only then are they considered part of the form. This creates a subtle trap:
Conditionally rendered fields or fields inside modals/popups won't register unless they have already been mounted at least once. The workaround is to render all possible fields initially with the noStyle prop set to true — but this is easy to forget and leads to confusing bugs.
No Field Value Decorators (Format / Parse)
The library provides a normalize prop for transforming values on input, but lacks the corresponding inverse function for going from stored value back to display value. This creates challenges when converting between display and storage representations, particularly for non-string values like numbers or dates.
Workarounds typically involve wrapper components, which adds boilerplate.

Other Small Issues
- No silent validation — you cannot validate the form without displaying error messages to the user
- Form.List deletion sets values to
undefinedtemporarily, requiring preprocessing before submission - Limited customization inside render functions

Conclusion
Ant Forms is feature-rich and handles the vast majority of standard form requirements well. However, you may occasionally find yourself fighting the library's design patterns. For future projects, alternatives like Formik or React Hook Form are worth considering — especially for complex forms where fine-grained control over state and validation is needed.