Redux Saga-如何在登录后调用多个操作 [英] Redux Saga - How to call multiple actions after logging in
本文介绍了Redux Saga-如何在登录后调用多个操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想要做的是在登录应用程序后,我想在我的传奇故事中调度几个动作,以获得完全否。反馈和员工。有人能帮我理解一下我是如何做到这一点的吗:-
登录传奇
function* loginSaga(action) {
try {
const userData = yield call(api.auth.login, action.payload);
yield put(actions.loginUser(userData));
//Save to localstorage
localStorage.setItem("jwtToken", userData.token);
//Set token to auth header
setAuthToken(userData.token);
//Decode token to get userData
const decoded = jwt_decode(userData.token);
//Set Current User
yield put(actions.setCurrentUser(decoded));
history.push("/review");
} catch (err) {
yield put(actions.loginUserErrors(err.response.data));
}
}
以下是我的操作
//Complete login user
export const loginUserRequest = userData => ({
type: actionTypes.LOGIN_USER_REQUEST,
payload: userData
});
export const loginUser = userData => ({
type: actionTypes.LOGIN_USER,
payload: userData
});
export const loginUserErrors = errors => ({
type: actionTypes.GET_ERRORS,
payload: errors
});
所以我想在登录传奇中加入更多动作
//Get Feedbacks
export const getFeedbacksRequest = () => ({
type: actionTypes.GET_FEEDBACKS_REQUEST
});
export const getFeedbacks = feedbacks => ({
type: actionTypes.GET_FEEDBACKS,
payload: feedbacks
});
export const getFeedbacksErrors = errors => ({
type: actionTypes.GET_ERRORS,
payload: errors
});
如何在登录传奇中添加更多内容,以便在用户登录时调度这些操作并获取列表。
我尝试添加此yield call(getFeedbacksRequest())
,但它引发错误。
我想添加3-4个这样的动作。
推荐答案
若要调度更多操作,您需要使用put
yield put(getFeedbacksRequest())
。但如果您需要在登录传奇中向服务器发出更多请求,则需要使用API调用创建类似的传奇,然后您可以在loginSaga
中使用call
或all
来调用它们。
这篇关于Redux Saga-如何在登录后调用多个操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文