React-Redux — Получение ошибок при отправке — TypeError

В моих файлах authActions я получаю unhandled rejection (typeerror) cannot read property of data of undefined

Указывая на эту строку кода

dispatch(returnErrors(err.response.data, err.response.status));

У меня есть тот же блок кода, определенный в теле запроса, и он указывает не на эту ошибку, а только на эту. Не уверен что происходит.

authActions.js

export const loadUser = () => (dispatch, getState) => {
    // User loading
    dispatch({ type: USER_LOADING });


    // Fetch user
    axios.get('/api/auth/user', tokenConfig(getState))
    .then(res => dispatch({
      type: USER_LOADED,
      payload: res.data
    }))
    .catch(err => {
      dispatch(returnErrors(err.response.data, 
      err.response.status));
      dispatch({
        type: AUTH_ERROR
      });
    });
};

не могли бы вы зарегистрировать ошибку и проверить, содержит ли она данные

Shubham Khatri 12.03.2019 07:27

прямо под этой строкой?

mph85 12.03.2019 07:28

вы напрямую устанавливаете res для полезной нагрузки, вам нужно будет получить res.json(), который возвращает обещание, после чего вам нужно будет установить данные в следующем обратном вызове .then

warl0ck 12.03.2019 07:29

@mph85, вы можете прокомментировать диспетчерский вызов и зарегистрировать его или зарегистрировать над диспетчерским вызовом.

Shubham Khatri 12.03.2019 07:30

хорошо, извините за обоих, я не уверен, как это сделать, это мой первый раз, когда я использую реакцию/редукс

mph85 12.03.2019 07:43

я поместил console.info(err) над этой строкой, но как мне это проверить?

mph85 12.03.2019 07:45

взгляните на консоль браузера, чтобы увидеть, что было зарегистрировано

G_S 12.03.2019 08:12

Хорошо, на самом деле поместите console.info(err.response) и console.info(err.response.data) прямо над отправкой (returnErrors(err.response.data, err.response.data)); и возвращено undefined для первого и uncaught (в обещании) не может прочитать свойство undefined

mph85 12.03.2019 08:30
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
8
342
2

Ответы 2

unhandled rejection (typeerror) cannot read property of data of undefined

В сообщении об ошибке говорится, что нет данных, называемых ответом на ошибку, поэтому он не определен, что означает, что вы не можете получить данные о неопределенном. Попробуйте зарегистрировать ошибку или отладить свой код, чтобы проверить, что на самом деле является ошибкой, а затем развить обработчик отклонения на основе истинной формы ошибки.

Можете ли вы попробовать этот код и посмотреть, какая консоль входит в консоль разработчика, нажав F12. Я понимаю, что вы плохо разбираетесь в React/Redux, поэтому предоставьте код для отладки.

export const loadUser = () => (dispatch, getState) => {
    // User loading
    dispatch({ type: USER_LOADING });


    // Fetch user
    axios.get('/api/auth/user', tokenConfig(getState))
    .then(res => {
      if (res.data) {
        dispatch({
            type: USER_LOADED,
            payload: res.data
        })
      }
    })
    .catch(err => {
        console.info(err.response)
        console.info(err.response.data)
        if (err.response.data) {
          dispatch(returnErrors(err.response.data, err.response.status));
          dispatch({
            type: AUTH_ERROR
          });
        }
    });
};

Хорошо, на самом деле поместите console.info(err.response) and a console.info(err.response.data) прямо над dispatch(returnErrors(err.response.data, err.response.data)); and returned undefined для первого и uncaught (in promise) cannot read property of undefined

mph85 12.03.2019 08:24

я попробовал ваш код, и в console.info(err.response.data) он ответил той же ошибкой uncaught (in promise)

mph85 12.03.2019 08:43

По сути, это означает, что ваш объект ошибки не имеет правильных данных. Пожалуйста, просмотрите возвращенный объект ошибки. Это может быть проблема с auth/user API, он должен возвращать правильный объект ошибки.

tarzen chugh 12.03.2019 09:47

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

mph85 12.03.2019 10:01

Другие вопросы по теме