Не удается отобразить ошибки фреймворка Django Rest на странице React JS

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