Parse.User.logIn застревает

1

Я сделал функцию входа в систему:

export const userLogin = (email, password) => (dispatch) => {
    console.log(email, password);
  dispatch({ type: actionTypes.AUTH_LOGIN_STARTED });
  console.log("after dispatch");
  Parse.User.logIn(email, password, {
    success(user) {
        console.log("in success");
      dispatch({
        type: actionTypes.AUTH_LOGIN_SUCCESS,
        user: user.toJSON(),
      });
     window.location.replace('/');
    },
    error(user, error) {
        console.log("in error")
      console.log({ error });
      // The login failed. Check error to see why.
      dispatch({
        type: actionTypes.AUTH_LOGIN_ERROR,
        error,
      });
    },
  });
};

но он всегда застревает после того, как Parse.User.logIn не идет успешно или по ошибке. Я зарегистрировал электронную почту и пароль, и они верны.

Так что мне здесь не хватает?

Теги:
parse.com
parse-server

1 ответ

1
Лучший ответ

Parse.User.Login не имеет третьего параметра. Вы должны использовать функции обещания:

Parse.User.logIn(email, password)
  .then((user) => {
    console.log("in success");
    dispatch({
      type: actionTypes.AUTH_LOGIN_SUCCESS,
      user: user.toJSON(),
    });
    window.location.replace('/');
  })
  .error((user, error) => {
    console.log("in error")
    console.log({ error });
    // The login failed. Check error to see why.
    dispatch({
      type: actionTypes.AUTH_LOGIN_ERROR,
      error,
    });
  });

Или, если вы достаточно интересны, вы можете использовать новый синтаксис await (который, по-моему, немного чище):

export const userLogin = (email, password) => async (dispatch) => {
  console.log(email, password);
  dispatch({ type: actionTypes.AUTH_LOGIN_STARTED });
  console.log("after dispatch");

  try {
    const user = await Parse.User.logIn(email, password);
    console.log("in success");
    dispatch({
      type: actionTypes.AUTH_LOGIN_SUCCESS,
      user: user.toJSON(),
    });
    window.location.replace('/');
  } catch (error) {
    console.log("in error")
    console.log({ error });
    // The login failed. Check error to see why.
    dispatch({
      type: actionTypes.AUTH_LOGIN_ERROR,
      error,
    });
  }
};
  • 0
    Также: Дважды проверьте параметры на ошибку. Я сомневаюсь, что он возвращает любой пользовательский объект (просто error )
  • 0
    работает как шарм, спасибо!
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню