Задать вопрос
@SNina
Отчаянно пытаюсь научиться писать хорошие сайты

Как обновлять различные состояния в зависимости от переменной?

Есть несколько состояний, которые меняются, если сервер присылает ошибки, например:

const [ errorName, setErrorName ] = useState( []  );
  const [ errorTeleph, setErrorTeleph ] = useState( [] );
  const [ errorEmail, setErrorEmail ] = useState( [] );

Сервер присылает ошибки в виде объекта err с разными ключами. Значения ключей - массивы, например:

{
  email : ['Такое значение поля Email уже существует.'],
  teleph: ['Такое значение поля Teleph уже существует.'],
}

Я хочу перебрать весь объект и для каждого ключа ("email", "name", "teleph" и т.д.) изменить состояние ошибок: setErrorName(err.name), setErrorEmail(err.email) и т.д. Но я запуталась, как мне записать setError...(и здесь плюс название ключа с большой буквы, например Email), чтобы каждому ключу соответствовало свое состояние setErrorName, или setErrorTeleph ...

for( const key in err ) {
                    setError${ key.charAt( 0 )}.toUpperCase() + key.slice( 1 ) )}( err[ key ] )  // Здесь не могу написать правильно
}
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
@karminski
Senior React.JS Developer
Сделайте проще
const [errors, setErrors] = useState({
    name: '',
    teleph: '',
    email: '',
});

// когда нужно устанавливается одну ошибку
setErrors({ ...errors, [name]: value })
// где name - имя ключа объекта с ошибками, value - значение ошибки
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽