#javascript #reactjs #django
Вопрос:
Реагируй на новичка здесь. Я работаю над проектом ReactJS с бэкендом Django. Я столкнулся с проблемой, когда я отправляю информацию о регистрации пользователя в django api, и она возвращает ошибку следующим образом. (Обратите внимание, что при правильных данных конечная точка API работает нормально. И в случае ошибки общее сообщение об ошибке, т. е. код ошибки 400, отображается без каких-либо проблем)
{
"username": [
"A user with that username already exists."
],
"email": [
"This field must be unique."
]
}
Это то, что я посылаю из своего action.js
catch (error) {
dispatch({
type: USER_REGISTER_FAIL,
payload: error.response.data})
}
Когда я пытаюсь повторить ошибку, отображается следующий идентификатор ошибки
Ошибка типа: Не удается прочитать свойство «карта» неопределенного
typeof(ошибка) показывает, что это объект. И когда я вижу это в console.log, в объекте есть два массива. каждый из них содержит один элемент (т. е. имя пользователя и адрес электронной почты соответственно).
{username: Array(1), email: Array(1)}
Я хочу отображать ошибки в соответствующих полях. т. е. ошибка имени пользователя должна отображаться над полем ввода имени пользователя и так далее. Как мне повторить объект, чтобы я мог получить правильное сообщение для соответствующего ввода?
Спасибо всем гениальным умам, которые там есть.
Комментарии:
1. Когда вы говорите «Когда я пытаюсь повторить ошибку», что вы имеете в виду конкретно в коде?
2. Спасибо за ваш ответ @WillWalsh Я использую функцию array.map. Я тоже использовал эту функцию раньше. Я не знаю, почему это не работает в этом сценарии
3. Так, например, вы сохраняете возврат из Django
error
и используетеerror.map
его ?4. Да, это верно
5.
.map
может выполняться только в массиве. Еслиerror
это объект, вы должны получить значения другим способом.