当某个条件不满足时,如何在调用takeLatest api之前取消redux saga中的操作

当某个条件不满足时,如何在调用takeLatest api之前取消redux saga中的操作,redux,redux-saga,Redux,Redux Saga,我创建了一个事件处理程序,当用户单击submit按钮时,表单将在其中被提交: export function* rootSaga(){ yield [ watchSubmittingForm()]} } export function watchSubmittingForm(){ const state = yield select(); let email = state.form.email; let password = state.form.password;

我创建了一个事件处理程序,当用户单击submit按钮时,表单将在其中被提交:

 export function* rootSaga(){
 yield [ 
  watchSubmittingForm()]}
 }

 export function watchSubmittingForm(){
 const state = yield select();
 let email = state.form.email;
 let password = state.form.password; 

  yield* takeLatest("SUBMIT_LOGIN", addLogin, email, password)
 }
当电子邮件或密码以redux方式为null时,如何使其不运行addLogin调用


在jquery方式中,我们有一个名为event.prevenDefault()的东西,这里有什么saga方式不运行最新的API调用

TakeLastHelper将在最新的“提交登录”操作中启动。因此,我将把触发动作的动作创建者或代码包装成一个条件。差不多

if (email && password) dispatch(submitLogin());

这样,您就不会通过redux管道传递操作,中间件也不会看到它,如果您有密码和电子邮件,操作将被发送,saga中间件将拦截它。

阅读文档后,我发现如果使用了yield-take-not-yield-take-latest,效果会更好。