Как отменить проверку ответа на окончательную форму после отправки формы? - PullRequest
1 голос
/ 07 августа 2020

При отправке формы, которая обновляет существующие значения, я отправляю создателя действия 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. Асинхронный с обещанием возвращает обещание который разрешается без значения при успехе или разрешается с ошибкой объекта отправки при неудаче. Причина, по которой он разрешается с ошибками, состоит в том, чтобы оставить отказ на случай ошибки сервера или связи.

, но такое поведение крайне нежелательно.

...