Неперехваченная ошибка типа: Не удается прочитать свойство «статус» неопределенного

#javascript #node.js

Вопрос:

Кто-нибудь может мне помочь. Я испытываю эту ошибку. «Неперехваченная ошибка типа: Не удается прочитать свойство «статус » неопределенного», и в нем говорится, что это от sessionChecker. Может ли кто-нибудь помочь мне отладить или устранить эту ошибку. Я пытаюсь исправить это для своего проекта. я надеюсь, что вы сможете мне в этом помочь

 export default {
name: 'payout-network-manager-table',
components: {
    AddPayOutNetworkModal,
    EditPayOutNetworkModal,
    ViewPayOutNetworkModal,
    NotesModal
},
mixins: [
    sessionChecker
],
data () {
    return {
        search_key_word: '',
        payout_networks: {},
        countries: [],
        pay_out_network_types: {},
        new_pay_out_networks: {},
        pay_out_network_id_for_view: 0,
        pay_out_network_id_for_edit: 0,
        pay_out_network_id_for_note: 0,
        country_id: '',
        submitting: false,
        token: localStorage.token,
        display: false,
    }
},
created() {
    this.getPayoutNetworks();
    Fire.$on('reloadAfterNewAmendPayOutNetwork', () => {
        this.getPayoutNetworks();
    });
},
methods: {
    getPayoutNetworks(page){
        let formData = new FormData;
        if (typeof page === 'undefined') {
            page = 1;
        }

        formData.append('search_key_word', this.search_key_word);

        axios.post('/api/payout-networks?page='   page, formData, {
            headers: {
                Accept: "application/json",
                "Content-Type": "application/json",
                Authorization: "Bearer "   this.token,
            }
        })
            .then(response => {
                this.display = true;
                this.payout_networks = response.data.payout_network_list;
                this.countries = response.data.countries;
                this.pay_out_network_types = response.data.pay_out_network_types;
                this.extractCountryAvailableInto();
            })
            .catch( error => {
                this.sessionChecker( error );
            });
    },
    passPayoutNetworkId (id) {
        this.pay_out_network_id_for_view = id;
    },
    passPayOutNetworkIdForEdit (id) {
        this.pay_out_network_id_for_edit = id;
    },
    passPayoutNetworkIdForNotes (id) {
        this.pay_out_network_id_for_note = id;
    },
    deletePayoutNetwork (id) {
        if (confirm('Are you sure you want to delete this Payout Network?'))
        {           
            axios.delete('/api/payout-network', {
                headers: {
                    Accept: "application/json",
                    "Content-Type": "application/json",
                    Authorization: "Bearer "   this.token,
                },
                data: JSON.stringify({
                    id: id
                })
            })
                .then( response => {
                    Fire.$emit('reloadAfterNewAmendPayOutNetwork');
                    Toast.fire({
                        icon: 'success',
                        title: response.data.message
                    });
                })
                .catch( error => {
                    this.sessionChecker( error );
                })
        }
    }
}
};
 

Это мой контролер сеансов. Может ли кто-нибудь помочь мне решить эту ошибку.

 export const sessionChecker = {
mixins: [
  logout
],
methods: {
    sessionChecker ( error ) {
      let title = 'Something went wrong, Please log in again';
      let wrong = false;
      if( error.response.status == 400 ) {
        title = 'Bad Request, Please log in';
        wrong = true;
      }
      if( error.response.status == 401 ) {
        title = 'Unauthorized action, Please log in';
        wrong = true;
      }
      if( error.response.status == 403 ) {        
        title = 'Forbidden, Please log in';   
        wrong = true; 
        if( error.response.data.message == 'Your email address is not verified.' ) {
          title = 'Your email address is not verified. Please verify first before we proceed';  
          wrong = false;
        }
      }
      if( error.response.status == 404 ) {
        title = 'Page not found, Please log in';
        wrong = true;
      }
      if( error.response.status == 419 ) {
        title = 'Session Expired, Please log in again, sorry for the inconvenience';
        wrong = true;
      }
      Toast.fire({
        icon: 'error',
        title: title
      });
      if( error.response.status != 422 ) {
        if( wrong ) {
          this.logout();
        } 
        else {
          if (this.$route.path !== '/email/resend') {
              this.$router.push({ path : '/email/resend' });
          }
        }
      }
    },
},
 

Комментарии:

1. Не могли бы вы указать номер строки, в которой возникает ошибка ? И укажите код, в котором вы вызываете средство проверки сеансов.

2. Ошибка выводится в состоянии ответа на ошибку 400

Ответ №1:

Поскольку error.response может быть не определено, вы должны использовать необязательную цепочку для доступа к error.response.status .

например: error?.response?.status