我试图找出这种情况下的最佳实践。
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)
有这种情况的官方解决方案吗?我不想重复我的自我。减速器具有相同的功能
您需要重新考虑您的应用程序架构。一般来说,可重复使用的减速器/操作是不正确的。
为什么它是不正确的?在目前看来,编写可重用的减速器和操作、更少的样板文件,而不是“DRY”似乎很棒。在您的应用程序的示例中。家庭和运动的“ADD_TO_DO”是相同的。
但在未来,认为你的老板/客户需要在体育领域添加未来将是危险的。如果您更改可重用减速器中的逻辑。你的应用程序将会崩溃。(您可以开始使用 if 语句修补您的可重用减速器以使其工作,但如果您的应用程序增长,它将不灵活/可读/维护)。
所以是的,在这种情况下你似乎需要编写 2 个减速器和 2 个操作文件。现在它是平等的,但将来它会是优势和灵活的。
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |