我如何 'destroy all' 在 redux-saga 中给定资源类型?
How do i 'destroy all' a given Resource type in redux-saga?
我是 Redux-Saga 的新手,所以请假设基础知识非常不稳定。
在 Redux 中,我能够定义一个动作和一个后续的 reducer 来处理该动作。在我的减速器中,我可以做任何我想做的事情,例如特定状态树节点的 'delete all',例如
switch action.type
...
case 'DESTROY_ALL_ORDERS'
return {
...state,
orders: []
}
然而,在我看来(在阅读文档之后),reducer 是由 Saga 定义的,并且您可以通过调用 post 修复的某些给定 CRUD 动词前缀的形式访问它们。例如。
fetchStart
、destroyStart
我的本能是使用destroyStart
,但该方法接受模型实例,而不是集合,即它只能销毁给定的资源实例(在我的例子中,一个订单)。
TL;DR
- 对于一组记录是否有
destroyStart
等价物?
- 如果没有,有没有办法将自定义行为添加到 Saga 创建的减速器中?
错过了什么?随心所欲地刻薄,我不知道我在做什么,但是当你烤完我时,请帮我一个忙,并为我指明正确的方向。
编辑:
澄清一下,我并不是要从我的数据库中删除记录。我只想清除所有 'Order' 记录的 Redux 存储。
这里获得了两个关键知识点。
我的团队正在使用一个名为 redux-api-resources 的库,在某种程度上我将其与 Saga 混为一谈。这个库是由一名前雇员创建的,它增加的复杂性与它消除的复杂性一样多。我不推荐它。 DestroyStart
由该库提供,与 Saga 无关。然而,对于任何使用这个库(redux-api-resources)的人来说,答案是不,没有批量销毁操作。
Reducer 是由 Saga 创建的,正如@Chad S 在上面的评论中指出的那样。我的想法错误是我认为我应该以某种方式破解这个 reducer 并用复杂的东西填充它逻辑。 'Saga' 方法是将逻辑放在 generator function 中,这是您(可以)定义控制流的地方。我并没有说这是最佳实践,只是说这就是我设法让我的代码正常工作的方式。
总的来说,我对 Saga 和 Redux 知之甚少,所以请对这些答案持保留态度。
我是 Redux-Saga 的新手,所以请假设基础知识非常不稳定。
在 Redux 中,我能够定义一个动作和一个后续的 reducer 来处理该动作。在我的减速器中,我可以做任何我想做的事情,例如特定状态树节点的 'delete all',例如
switch action.type
...
case 'DESTROY_ALL_ORDERS'
return {
...state,
orders: []
}
然而,在我看来(在阅读文档之后),reducer 是由 Saga 定义的,并且您可以通过调用 post 修复的某些给定 CRUD 动词前缀的形式访问它们。例如。
fetchStart
、destroyStart
我的本能是使用destroyStart
,但该方法接受模型实例,而不是集合,即它只能销毁给定的资源实例(在我的例子中,一个订单)。
TL;DR
- 对于一组记录是否有
destroyStart
等价物? - 如果没有,有没有办法将自定义行为添加到 Saga 创建的减速器中?
错过了什么?随心所欲地刻薄,我不知道我在做什么,但是当你烤完我时,请帮我一个忙,并为我指明正确的方向。
编辑:
澄清一下,我并不是要从我的数据库中删除记录。我只想清除所有 'Order' 记录的 Redux 存储。
这里获得了两个关键知识点。
我的团队正在使用一个名为 redux-api-resources 的库,在某种程度上我将其与 Saga 混为一谈。这个库是由一名前雇员创建的,它增加的复杂性与它消除的复杂性一样多。我不推荐它。
DestroyStart
由该库提供,与 Saga 无关。然而,对于任何使用这个库(redux-api-resources)的人来说,答案是不,没有批量销毁操作。Reducer 是由 Saga 创建的,正如@Chad S 在上面的评论中指出的那样。我的想法错误是我认为我应该以某种方式破解这个 reducer 并用复杂的东西填充它逻辑。 'Saga' 方法是将逻辑放在 generator function 中,这是您(可以)定义控制流的地方。我并没有说这是最佳实践,只是说这就是我设法让我的代码正常工作的方式。
总的来说,我对 Saga 和 Redux 知之甚少,所以请对这些答案持保留态度。