Создан компонент входа в систему, но не знаю, почему мой поток входа не работает с помощью saga - PullRequest
0 голосов
/ 09 апреля 2020

После прочтения некоторых руководств я решил написать поток входа в систему, используя поддельный api, который возвращает токен, и этот токен будет сохранен, поэтому я использую reqres.in/api/login {"email": "eve. holt@reqres.in", "пароль": "cityslicka"} и токен это {"токен": "QpwL5tke4Pnpja7X4"} Я просто хочу знать, где я делаю неправильные парни? моя страница входа настроена четко LOGIN_REQUEST работает, но не продолжает :( из authApi возвращает «токен»: «QpwL5tke4Pnpja7X4»

saga.js
export async function authApi(email, password) {
  debugger;
  try {
    const response = await fetch("https://reqres.in/api/login", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ email, password }),
    });
    const json = await response.json();
    console.log("json :", json);
    return json;
  } catch (error) {
    throw error;
  }
}

export function* authorize(email, password) {
  try {
    const token = yield call(authApi, email, password);
    yield put({ type: "LOGIN_SUCCESS" });
    yield put({ type: "SAVE_TOKEN", token });
  } catch (error) {
    yield put({ type: "LOGIN_ERROR", error });
  } finally {
    if (yield cancelled()) {
      yield put({ type: "LOGIN_CANCELLED" });
    }
  }
}

export function* loginFlow() {
  debugger;
  while (true) {
    const { email, password } = yield take("LOGIN_REQUEST");
    const task = yield fork(authorize, email, password);
    const action = yield take(["LOGOUT", "LOGIN_ERROR"]);
    if (action.type === "LOGOUT") {
      yield cancel(task);
      yield put({ type: "DELETE_TOKEN" });
    }
  }
}

export default function* loginSagas() {
  debugger;
  yield takeLatest(LOGIN_REQUEST, loginFlow);
}


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...