登录后,我的第二个操作是登录成功后没有得到调度操作



这是我的auth.js操作文件,我在其中创建了loginUser和loadUser操作。在loginUser操作中,我调用了loadUser((操作。但是在LOGIN_SCCESS操作类型之后没有激活操作loadUser。

export const loadUser = () => async (dispatch) => {
if (localStorage.token) {
setAuthToken(localStorage.token);
}
try {
const res = await axios.get('/api/auth');
dispatch({
type: USER_LOADED,
payload: res.data,
});
} catch (err) {
dispatch({
type: AUTH_ERROR,
});
}
};
export const loginUser = (email, password) => async (dispatch) => {
const config = {
headers: {
'Content-Type': 'application/json',
},
};
const body = JSON.stringify({
email,
password,
});
try {
const res = await axios.post('/api/auth', body, config);
dispatch({
type: LOGIN_SUCCESS,
payload: res.data,
});
dispatch(loadUser())
} catch (err) {
const error = err.response.data.msg;
if (error) {
dispatch(setAlert(error, 'danger'));
}
dispatch({
type: LOGIN_FAILED,
});
}
};

我试了很多次来找出错误,但我不知道是什么干扰了这个动作,因为只有第一个动作被激活了。请帮帮我。谢谢。

如果您只是将其用于第二个操作,那么您不需要导出loadUser((方法。

只需将其作为该文件中的一个方法,然后在调度后调用它

...
dispatch({
type: LOGIN_SUCCESS,
payload: res.data,
});
loadUser();
...

相关内容

  • 没有找到相关文章

最新更新