ReactJS |Ошибки отображения TypeScript с сервера на Formik - PullRequest
0 голосов
/ 27 мая 2019

У меня есть простая утилита для map ошибок сервера в Formik Form Props. Вот утилита:

import { fromPairs, map, pipe } from 'ramda';

const mapServerValidationErrorsToFormik = (errors: any): any =>
  pipe(
    map(({ field, error }) => [field, error]),
    fromPairs
  )(errors);

export default mapServerValidationErrorsToFormik;

Но вы получите следующую ошибку машинописи:

Аргумент типа '(obj: Functor <{field: any; error: any;}>) => Функтор <[any, any]> 'не может быть назначен параметру типа' (x0: Функтор <{field: any; ошибка: любая; }>, x1: неизвестно, x2: неизвестно) => KeyValuePair []. Введите «Functor <[any, any]>» в типе KeyValuePair [] отсутствуют следующие свойства: length, pop, push, concat и еще 27.ts (2345)

И я использую это здесь:

  handleSubmitError = (
    error: LensesHttpError,
    { setSubmitting, setErrors, setStatus }: FormikActions<ITypeOfValues>
  ) => {
    setSubmitting(false);
    if (
      error.response &&
      error.response.status === HTTP_STATUS_CODE.BAD_REQUEST &&
      Array.isArray(error.response.data) &&
      error.response.data.length > 0
    ) {
      setErrors(mapServerValidationErrorsToFormik(error.response.data));
    }
  };

Я думаю об использовании Pick из TypeScript, чтобы получить только те реквизиты, которые мне нужны, но я ими не пользовался, особенно в связи с Formik.

Не могли бы вы, во-первых, объяснить мне, в чем проблема, и, во-вторых, что мне нужно сделать. Спасибо.

...