Formik | Несколько значений IV сопоставлены с formikActions - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть мульти-форма действия. Это означает, что хотя мои действия, проверка и начальные значения различны, фактические формы одинаковы, поэтому я снова их использую. В моем handleSubmitSuccess я хочу позвонить, различные значения IV в зависимости от ситуации.

Вот код, который в настоящее время работает с одним IValue, который имеет дополнительные реквизиты:

interface IFullValues extends FormikValues {
  username?: string;
  email?: string;
  password?: string;
  group?: string;
}

  handleSubmitSuccess = (
    { username, email, password, group }: IFullValues,
    formikActions: FormikActions<IFullValues>
  ) => {
    const { onSave, mode } = this.props;
    const { setSubmitting } = formikActions;

    setSubmitting(false);
    if (mode === ActionMode.EDIT_INFO) {
      onSave({ username, email, group });
    } else if (mode === ActionMode.EDIT_PASSWORD) {
      onSave({ password });
    } else {
      onSave({ username, email, password, group });
    }
  };

  handleSubmit = (
    { username, email, password, group }: FormikValues,
    formikActions: FormikActions<IFullValues>
  ) => {
    const { doSubmit, mode } = this.props;
    if (mode === ActionMode.EDIT_INFO) {
      return doSubmit(updateUser, { username })
        .then(() => this.handleSubmitSuccess({ username, email, group }, formikActions))
        .catch((error: HttpError) => this.handleSubmitError(error, formikActions));
    }
    if (mode === ActionMode.EDIT_PASSWORD) {
      return doSubmit(updateUser, { username })
        .then(() => this.handleSubmitSuccess({ username, password }, formikActions))
        .catch((error: HttpError) => this.handleSubmitError(error, formikActions));
    }
    return doSubmit(createUser, { username })
      .then(() => this.handleSubmitSuccess({ username, email, password, group }, formikActions))
      .catch((error: HttpError) => this.handleSubmitError(error, formikActions));
  };

Можно ли фактически передать несколько значений в formikActions, и если да, то как это сделать? Я не могу найти пример этого, и это блокирует мою реализацию. Нужно ли полностью разделять форму?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...