Как обновить форму с данными об ошибках после неудачной отправки? - PullRequest
0 голосов
/ 05 февраля 2019

Я использую response-final-form .

<Form
  onSubmit={
    (values) => makeAPICall(values).catch(e => ????)
  }
>
...
  <Field name='name'>
    ...
  </Filed>
...
</Form>

Допустим, что возвращающаяся ошибка связана с тем, что имя не уникально.

Iхотел бы установить ошибку на Field на основе сообщения от e.

Я не могу понять, как изменить состояние формы изнутри catch.

1 Ответ

0 голосов
/ 05 февраля 2019

В проекте react-final-form есть коды и поле для обработки ошибок при отправке.
Это здесь: https://codesandbox.io/s/9y9om95lyp

По сути, в вашем приложении для рендеринга форм вы должны передать ему деструктурированный объект, содержащий submitErrorи проверьте наличие ошибки отправки в вашем поле.

<Form
  onSubmit={values => makeAPICall(values).catch(e => return { username: e })}
  // ...
  render={({
    handleSubmit,
    values,
    // ...
   }) => (
    <form onSubmit={handleSubmit}>
      <Field name="username">
        {({ input, meta }) => (
          <div>
            <label>Username</label>
            <input {...input} type="text" placeholder="Username" />
            {meta.submitError && meta.touched && <span>{meta.submitError}</span>}
          </div>
        )}
      </Field>
    </form>
   )}
/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...