Well, i've tested some libs, like antd's rc-form based, and react-final-form, and as i came from a corporate environment, where things usually gets a little crazy, i used myself to libs that can handle that scenarios. Or if they don't, i end up build one, myself.
And the results usually where quite nice! So, lets get a little dive in some comparisons:
Is a powerful engine, based on RC-Form but IMO:
extremely verbose and messy, especially when you put validations
does not support functional components as wrapped ones
it obligates you to wrap your form, using a HOC, to provide a form utility that will wrap your components (!)
Working with complex properties, especially array ones, can be a challenge, you can't simply delete or create fields, as you wish...
the stateless model is a little bit confusing...
If you use with typescript, you need to reverse engineer the code to discover whats the actual prop type, of the backed form, to put in the React.Component generic
Another powerful engine, clearer than Antd's, but:
Does not support stateless approach
Code could get a little messy because of the design choice, of the use of a render prop inside of the field, instead of children default one.
Lack of tools for combining validators.
Modify a value, requires you to build a mutator (!)