使用一个Saga动作作为if语句的条件



我实际上试图在我的应用程序中实现redux-saga。为了在开始时保持简单,我首先尝试将saga添加到我的登录组件中。

但是我正在努力添加一个if语句,该语句将UI重定向到一个页面,如果我的登录操作loginSuccess()被调度。我想实现如下注释语句:

const onSubmitForm = (e?: React.FormEvent<HTMLFormElement>) => {
if (e) {
e.preventDefault();
}
dispatch(actions.submitLogin());
// if (actions.loginSuccess() && !actions.loginError) {
//  history.push('/');
// }
};

如何传递动作:

// After the API was fetched:
if (response.message === 'login') {
yield put(actions.loginSuccess());
} else {
yield put(actions.loginError('Username or password is incorrect'));
}

您将处理" loginsuccess ";操作来更改状态,或者可能通过另一个saga侦听loginSuccess操作,以便在用户登录时执行各种其他操作。例如,获取用户数据,重定向位置等。

最新更新