Redux 重演传奇:在错误为真的地方采取一切行动
是否可以指定操作的错误字段是否设置为trueRedux 重演传奇:在错误为真的地方采取一切行动,redux,redux-saga,Redux,Redux Saga,是否可以指定操作的错误字段是否设置为true const response = function*() { yield takeEvery("CLIENT_RESPONSE", handleResponse); } 但是,我们不知道类型为CLIENT\u RESPONSE的操作是否将其错误字段设置为true 我知道我可以在HandlerResponse中检查这一点,但这似乎比它应该做的工作要多。例如,handleResponse可能会变得复杂,因为对于非错误和错误情况,我都需要编写大量
const response = function*() {
yield takeEvery("CLIENT_RESPONSE", handleResponse);
}
但是,我们不知道类型为CLIENT\u RESPONSE
的操作是否将其错误字段设置为true
我知道我可以在HandlerResponse
中检查这一点,但这似乎比它应该做的工作要多。例如,handleResponse
可能会变得复杂,因为对于非错误和错误情况,我都需要编写大量代码(即,我希望这两种情况都有不同的处理程序)
那么,有没有一种方法可以指定仅在error设置为true时执行该操作?根据Saga API,takeEvery
的模式(第一个参数)可以是String
、Array
或Function
。
const response = function*() {
yield takeEvery("CLIENT_RESPONSE", handleResponse);
}
您可以通过传递函数来实现所需:
const response = function*() {
yield takeEvery(action => (action.type === "CLIENT_RESPONSE" && !action.error), handleResponse);
}
根据sagaapi,takeEvery
的模式(第一个参数)可以是String
、Array
或函数
。
您可以通过传递函数来实现所需:
const response = function*() {
yield takeEvery(action => (action.type === "CLIENT_RESPONSE" && !action.error), handleResponse);
}