В моих файлах 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
});
});
};
прямо под этой строкой?
вы напрямую устанавливаете res для полезной нагрузки, вам нужно будет получить res.json(), который возвращает обещание, после чего вам нужно будет установить данные в следующем обратном вызове .then
@mph85, вы можете прокомментировать диспетчерский вызов и зарегистрировать его или зарегистрировать над диспетчерским вызовом.
хорошо, извините за обоих, я не уверен, как это сделать, это мой первый раз, когда я использую реакцию/редукс
я поместил console.info(err) над этой строкой, но как мне это проверить?
взгляните на консоль браузера, чтобы увидеть, что было зарегистрировано
Хорошо, на самом деле поместите console.info(err.response) и console.info(err.response.data) прямо над отправкой (returnErrors(err.response.data, err.response.data)); и возвращено undefined для первого и uncaught (в обещании) не может прочитать свойство undefined





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
я попробовал ваш код, и в console.info(err.response.data) он ответил той же ошибкой uncaught (in promise)
По сути, это означает, что ваш объект ошибки не имеет правильных данных. Пожалуйста, просмотрите возвращенный объект ошибки. Это может быть проблема с auth/user API, он должен возвращать правильный объект ошибки.
Есть ли способ сделать скриншот ошибок, которые появляются?
не могли бы вы зарегистрировать ошибку и проверить, содержит ли она данные