如何在不满足特定条件时调用 takeLatest api 之前取消 redux saga 中的操作
how to cancel the action in redux saga before the takeLatest api is called when a certain condition is not met
我创建了一个事件处理程序,当用户单击提交按钮时表单会被提交:
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)
}
当电子邮件或密码为 null 时,如何在 redux 方式中不 运行 addLogin 调用?
在 jquery 方式中,我们有一个叫做 event.prevenDefault() 的东西,这里没有 运行 takeLatest API 调用的传奇方式是什么?
takeLatest 助手将触发最新的 "SUBMIT_LOGIN" 操作。所以我会在条件中包装动作创建者或触发动作的代码。像
if (email && password) dispatch(submitLogin());
这样你就不会通过 redux 管道传递操作,中间件也不会看到它,如果你有密码和电子邮件,操作将被调度并且 saga 中间件将拦截它。
我创建了一个事件处理程序,当用户单击提交按钮时表单会被提交:
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)
}
当电子邮件或密码为 null 时,如何在 redux 方式中不 运行 addLogin 调用?
在 jquery 方式中,我们有一个叫做 event.prevenDefault() 的东西,这里没有 运行 takeLatest API 调用的传奇方式是什么?
takeLatest 助手将触发最新的 "SUBMIT_LOGIN" 操作。所以我会在条件中包装动作创建者或触发动作的代码。像
if (email && password) dispatch(submitLogin());
这样你就不会通过 redux 管道传递操作,中间件也不会看到它,如果你有密码和电子邮件,操作将被调度并且 saga 中间件将拦截它。