-1

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

 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 方式为空时,如何使其不运行 addLogin 调用?

在 jquery 方式中,我们有一个叫做 event.prevenDefault() 的东西,这里不运行 takeLatest API 调用的传奇方式是什么?

4

1 回答 1

2

takeLatest 助手将触发最新的“SUBMIT_LOGIN”动作。所以我会在条件中包装动作创建者或触发动作的代码。就像是

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

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

于 2016-08-24T23:46:25.427 回答