Redux 为每个特定减速器分配多个操作与为多个减速器分配一个操作之间是否存在差异?

Redux 为每个特定减速器分配多个操作与为多个减速器分配一个操作之间是否存在差异?,redux,react-redux,Redux,React Redux,我有一个例子,从API返回一个数据,我需要将这些数据安排到每个减速机。有两种设计方法: С当向每个特定减速器发送多个动作时: 只有一个通用操作被调度,并且只有特定的还原器应该处理这个操作: 我知道第一个选项更容易控制,例如,如果我需要为某个操作传递另一些数据并在特定的减速器中处理它,该怎么办。 但是reduxjs文档说: 那太令人困惑了。在设计存储时,什么选项更合适?根据,我们鼓励“在还原器中保持尽可能多的逻辑”,以及 在这种情况下,不需要分派两个单独的操作。分派一个包含此API响应中所有数据的

我有一个例子,从API返回一个数据,我需要将这些数据安排到每个减速机。有两种设计方法:

  • С当向每个特定减速器发送多个动作时:
  • 只有一个通用操作被调度,并且只有特定的还原器应该处理这个操作:
  • 我知道第一个选项更容易控制,例如,如果我需要为某个操作传递另一些数据并在特定的减速器中处理它,该怎么办。 但是reduxjs文档说:

    那太令人困惑了。在设计存储时,什么选项更合适?

    根据,我们鼓励“在还原器中保持尽可能多的逻辑”,以及


    在这种情况下,不需要分派两个单独的操作。分派一个包含此API响应中所有数据的操作,并让每个reducer酌情处理该操作以更新其自己的状态。

    感谢您的响应。如果我使用
    redux工具包
    和它自己的切片,我是否应该在每个特定的缩减器中使用
    extrareducer
    来处理“共享”操作?对于至少一个切片缩减器,是的。从概念上讲,分派的操作要么“属于”其中一个片,要么不属于其中任何一个片。切片还原器使用
    外部还原器
    字段来处理尚未定义为该切片的
    还原器
    字段一部分的任何操作。
    export function actionFetchData() {
      const data = getDataFromApi()
    
      dispatch({ type: firstReducer.someAction, payload: { data: data.someProp })
      dispatch({ type: secondReducer.someAction, payload: { data: data.anotherProp })
      // .. and so on
    }
    
    export function actionFetchData() {
      const data = getDataFromApi()
      dispatch({ type: someGenericAction, payload: { data })
    }