Необработанный отказ (typeError): невозможно прочитать свойство undefined с помощью reactjs ax ios на google chrome mobile - PullRequest
1 голос
/ 23 января 2020

При вводе неверной информации в моем браузере google chrome на моем ноутбуке я получаю ответ об ошибке: снимок экрана ответа в браузере моего ноутбука с использованием этого кода

axios
        .post(`${strapi}/auth/local`, loginData)
        .then(res => {
          if (undefined === res.data.jwt) {
            this.setState({error: res.data.message, Loading: false});
            return;
          }

          sessionStorage.setItem('JWT', res.data.jwt);
          sessionStorage.setItem('username', res.data.user.username);
          sessionStorage.setItem('role', res.data.user.role.type);


          this.setState({Loading: false, token: res.data.jwt, username: res.data.user.username, userEmail: res.data.user.email, isLoggedIn: true});
          // window.location.href = '/';
        })
        .catch(err => {
          this.setState({
            error:err.response.data.message[0].messages[0].message
          })
          console.log(this.state.error)
        })

однако при входе в мой мобильный браузер chrome с использованием того же кода кода появляется снимок экрана

как решить эту проблему?

1 Ответ

0 голосов
/ 23 января 2020

Этот тип ошибки возникает, когда вы не получаете свой error.response.

Итак, вы можете установить сообщение по умолчанию, если у вас появятся неизвестные ошибки.

     let MESSAGE;

     if(error.response){
         MESSAGE = err.response.data.message[0].messages[0].message
     }else{
          MESSAGE = 'Something went wrong.'
     }

     this.setState({
         error: MESSAGE
      })

Или вы можете записать свою ошибку, почему это произошло

 console.log('error',error) 
...