簡體   English   中英

Redux-saga root saga 中的多個 saga

[英]Redux-saga multiple saga in root saga

這是我的代碼:

登錄.saga.ts

export function* authenticate(action: AuthenticateRequestAction) {
  ...
}

export function* logout(action: LogoutRequestAction) {
  try {
    yield LoginService.logout(action.data);
    yield put(AppActions.resetUser());
    yield put(loginActions.setAuthenticationSuccessRequest(false));
  } catch (err) {
    Notification({
      type: 'error',
      message: err.message,
      description: i18n.t('login.logoutFailed'),
    });
  }
}

export default function* loginSaga() {
  yield [
    takeLatest(ELoginActionTypes.AUTHENTICATE_REQUEST, authenticate),
    takeLatest(ELoginActionTypes.LOGOUT_REQUEST, logout),
  ];
}

根目錄

export default function* rootSaga() {
  yield all([appSaga(), loginSaga()]);
}

我的應用程序只是在聽第一個調用的動作,例如LOGOUT_REQUEST但不會聽那個之后的其他動作,即使是用

yield put()

所以我想我的設置是錯誤的,知道嗎?

你不應該嘗試像 redux-saga 文檔中的這個例子嗎?

export default function* loginSaga() {
  while (true) {
    const authAction = yield take(ELoginActionTypes.AUTHENTICATE_REQUEST);
    yield* authenticate(authAction);
    const logoutAction = yield take(ELoginActionTypes.LOGOUT_REQUEST),
    yield* logout(logoutAction);
  };
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM