J'essaie de soumettre de manière programmatique un formulaire ant design (v4.3.4) avec validation mais form.validateFields()
échoue toujours avec outOfDate: true
s'il est à l'intérieur onValuesChange()
. (Ce formulaire fait partie d'une usine à formulaires plus large, je devrai donc éventuellement passer le composant du formulaire à une fonction props qui appellera ensuite submit.
const FormA = (props: StepProps) => {
const [form] = useForm();
return (
<Form
form={form}
name="form-a"
onValuesChange={async (changedValues, allValues) => {
form.validateFields().
then(values => console.log("PASSED").
catch(errorInfo => console.log("FAILED", errorInfo));
}}
>
<Form.Item
rules={[{ required: true }]}
name="item-a">
<Input />
</Form.Item>
<Form.Item
rules={[{ required: true }]}
name="item-b"
>
<Input />
</Form.Item>
<Form.Item
rules={[{ required: true }]}
name="item-c"
>
<Input />
</Form.Item>
</Form>
);
};
export default FormA;
J'ai appelé le form.validatedField()
fonction onValuesChange. Je n'obtiens jamais "PASSED" dans la console, même lorsque toutes les entrées ont des valeurs, j'obtiens toujours "FAILED" avec l'info d'erreur suivante :
{
errorFields: []
outOfDate: true
values: { ..}
}
Si je supprime la fonction form.validateFields() de la fonction onValuesChange
alors cela fonctionne bien.
Je n'arrive pas à comprendre ce qui est outOfDate
et pourquoi la validation échoue toujours dans la fonction onValuesChange.