@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 ] )  // Здесь не могу написать правильно
}
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
@karminski
Senior React.JS Developer
Сделайте проще
const [errors, setErrors] = useState({
    name: '',
    teleph: '',
    email: '',
});

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

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

Похожие вопросы