Бери либы для форм react-final-form/react-hook-form/куча других
клиентскую обработку валидации не делаю. Ошибка валидации прилетает мне с сервера
попроси бэкенд ошибки возвращать не массивом, а объектом, либо сам трансформируй в объект
без библиотек сделай функицию, которая принимает массив ошибок и название инпута. И если в массиве есть ошибки по указаному инпуту - возвращать эту ошибку. И добавить ее под каждый инпут с нужными параметрами, что б если есть ошибка то она появлялась
const settersErr = { username: setUsernameErr, password: setPasswordErr, } Object.keys(registerValidateErr).forEach(key => settersErr[key](registerValidateErr[key]) )
Не важно
Но вообще лучше либа для форм
Я с телефона пишу, поэтому чуть сложнее помочь, увидел, что это массив объектов, поэтому немного перебор поменяется, но суть та же
понял. по ключам в массиве пробегусь. спасибо
Пожалуйста
я думаю это можно делать в useEffect в зависимость передать массив?
Да и при изменении данных, он обновит ошибки
а если в массиве при трансформации окажется два одинаковых поля, сообщения просто складывать ?
да, наверное да. тогда будет объект у которого ключ - название поля, а значение - массив ошибок
ну тогда думаю лучше на сервере переделать
да, в идеале сервер должен присылать нормально сразу
хуки
так у тебя просто же там. фильтруешь массив по строкам 'username', 'password' и т.д. Ну и собственно выводишь полученные значения.
И если несколько значений, то .join(', ')
Обсуждают сегодня