[英]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.