redux减少动作和减速器的样板

Ali*_*lin 5 javascript redux

我试图找出这种情况下的最佳实践。

2上下文:体育待办事项和家庭待办事项。

所以2个动作文件:

export const SPORT_ADD_TODO = `[SPORT] ADD TODO`
export const HOME_ADD_TODO = `[HOME] ADD TODO`
Run Code Online (Sandbox Code Playgroud)

和2个减速器文件

homeReducer(state, action) {
  switch(action.type) {
     case HOME_ADD_TODO:
        return Object.assing({}, state, {
           todos: action.payload
        })
     default:
        return state;
  }
}

sportReducer(state, action) {
      ....
}
Run Code Online (Sandbox Code Playgroud)

有这种情况的官方解决方案吗?我不想重复我的自我。减速器具有相同的功能

Lid*_*tan 3

您需要重新考虑您的应用程序架构。一般来说,可重复使用的减速器/操作是不正确的。

为什么它是不正确的?在目前看来,编写可重用的减速器和操作、更少的样板文件,而不是“DRY”似乎很棒。在您的应用程序的示例中。家庭和运动的“ADD_TO_DO”是相同的。

但在未来,认为你的老板/客户需要在体育领域添加未来将是危险的。如果您更改可重用减速器中的逻辑。你的应用程序将会崩溃。(您可以开始使用 if 语句修补您的可重用减速器以使其工作,但如果您的应用程序增长,它将不灵活/可读/维护)。

所以是的,在这种情况下你似乎需要编写 2 个减速器和 2 个操作文件。现在它是平等的,但将来它会是优势和灵活的。