При отправке формы, которая обновляет существующие значения, я отправляю создателя действия redux.
<Form onSubmit={onFormSubmit} destroyOnUnregister>
{({dirty, invalid, handleSubmit}) =>
...
<Button
onClick={handleSubmit}
disabled={invalid || !dirty}>
Save
</Button>
}
Когда значения формы получены на бэкэнде, сервер отвечает обновленными данными, которые реагируют на окончательную форму интерпретируется как ошибка отправки (свойство invalid
из response-final-form остается true
, даже если форма была отправлена успешно). Как я могу предотвратить такое поведение?
Я обновляю только одно поле за раз, т.е. name
, при отправке формы, но ответ сервера содержит весь фрагмент данных для обновления redux store). Ошибка проверки, которую я получаю:
"submitErrors": {
"data": {
"id": 1,
"name": "Company 1",
"country": "USA",
"city": "New York",
...
...
"createdAt": "2020-08-06",
"updatedAt": "2020-08-06",
"deletedAt": null
},
"type": "company/UPDATE_INFO_SUCCESS"
}
Обратите внимание, что было запущено действие company/UPDATE_INFO_SUCCESS
.
Я видел следующую часть в документации о отправке формы
3. Асинхронный с обещанием возвращает обещание который разрешается без значения при успехе или разрешается с ошибкой объекта отправки при неудаче. Причина, по которой он разрешается с ошибками, состоит в том, чтобы оставить отказ на случай ошибки сервера или связи.
, но такое поведение крайне нежелательно.