Reset values in React Final Form
How to reset values in React Final Form after submitting
At first I wrote the following code:
<Form onSubmit={onSubmit} render={({ handleSubmit, form }) => ( <form onSubmit={event => { handleSubmit(event).then(() => { form.reset(); }) }} > ... </form> }/>
If we implement a function like this, we will get an error "Uncaught TypeError: Cannot read property 'then' of undefined”, when we try to submit invalid form.
Invalid forms — form with validation errors.
The solution
To avoid this error, we need to place handleSubmit(event) to a variable, and if the variable is not undefined call .then().
onSubmit={(event) => { const promise = handleSubmit(event); promise && promise.then(() => { form.reset(); }) return promise; }}