Возможный необработанный отказ от обещания (Id: 0): TypeError: undefined не является объектом (оценка 'err.response.data') - PullRequest
0 голосов
/ 20 мая 2019

У меня есть приложение React Native , которое я клонировал.Он соединяется с MongoDB с использованием Node.js API .Однако после регистрации в приложении оно не может ни вставлять, ни извлекать данные из MongoDB .Кроме того, в моем симуляторе я получил желтую ошибку в нижней части экрана, которая гласит:

Возможный необработанный отказ от обещания (id: 0): TypeError: undefined не является объектом (вычисляя 'err'.response.data ')

Вот мой код:

export const loginuser = userData => dispatch => {
    axios.post("http://localhost:4000/api/users/login", userData)
      .then(res => {

        // save user token to local storage 
        const { token } = res.data;

        AsyncStorage.setItem("jwtToken", token);
        console.log(AsyncStorage.setItem())

        // set token to auth header i.e authorization 
        setAuthToken(token);

        // decode the token and saveuser to deoded

        const decoded = jwt_decode(token);
        console.log(token)
        //set current user 

        console.log(decoded)
        dispatch(setCurrentUser(decoded));

        Actions.main()
      })
      .catch(err => dispatch({
        type:GET_ERRORS,
        payload: err.response.data
      })
      )
  }

Могу ли я узнать лучшее решение для устранения этой ошибки.Надеюсь на вашу помощь.Спасибо

1 Ответ

0 голосов
/ 20 мая 2019

Пожалуйста, сверьтесь с документом Axios о том, как обрабатывать ошибки: https://github.com/axios/axios#handling-errors

err.response может быть пустым:

axios.post("http://localhost:4000/api/users/login", userData)
  .catch(function (error) {
    if (error.response) {
      // The request was made and the server responded with a status code
      // that falls out of the range of 2xx
      console.log(error.response.data);
      console.log(error.response.status);
      console.log(error.response.headers);
    } else if (error.request) {
      // The request was made but no response was received
      // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
      // http.ClientRequest in node.js
      console.log(error.request);
    } else {
      // Something happened in setting up the request that triggered an Error
      console.log('Error', error.message);
    }
    console.log(error.config);
  });
...