У меня есть простая утилита для 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.
Не могли бы вы, во-первых, объяснить мне, в чем проблема, и, во-вторых, что мне нужно сделать. Спасибо.