если условие не работает в ответе на ошибку - PullRequest
0 голосов
/ 26 сентября 2018

Когда я пытался проверить состояние статуса ответа, он даже не зашел внутрь и не проверил, что нужно сделать, чтобы сравнить и показать предупреждение.FYI swal - это пакет npm, используемый для оповещения

onSubmit(values) {
    this.props.signIn(values, response => {
        if (response.status === 200) {
            swal("Login successful", "Signed In", "success");
            this.props.history.push(`/dashboard/${response.data.user_name}`);
        } else {
            console.log("wrong password");
            swal({
                title: "Invalid Email Id or password",
                icon: "warning"
            });
        }
    });
};

Action.js

export function signIn(values, callback) {
    const request = axios.post(`${ROOT_URL}/${APP_ID}/${API_KEY}/users/login`, values).then(() => callback());

    return {
        type: LOGIN_DETAILS,
        payload: request
    };
}

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

первая ошибка response.status будет undefined , потому что вы не передали ответ обратно в callback()

вторая ошибка, если axios.post failон никогда не будет вызывать callback () , что означает целое, если не сработает.

Чтобы исправить это, вам просто нужно изменить действие на

export function signIn(values, callback) {
    const request = axios.post(`${ROOT_URL}/${APP_ID}/${API_KEY}/users/login`, values).then(callback).catch(callback);

    return {
        type: LOGIN_DETAILS,
        payload: request
    };
}

или

export function signIn(values, callback) {
    const request = axios.post(`${ROOT_URL}/${APP_ID}/${API_KEY}/users/login`, values).then((response) => callback(response)).catch((error) => callback(error));

    return {
        type: LOGIN_DETAILS,
        payload: request
    };
}
0 голосов
/ 26 сентября 2018

Нужно вернуть обещание axios, попробуйте с этим кодом

    onSubmit(values) {
    this.props
      .signIn(values)
      .then((response) => {
        swal("Login successful", "Signed In", "success");
          this.props.history.push(`/dashboard/${response.data.user_name}`);
      })
      .catch((error) => {
        console.log("ajax error");
        swal({
          title: "Invalid Email Id or password",
          icon: "warning",
        });
      });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...