为什么不使用单个 reducer 函数来向 Redux 存储添加、更新和删除实体?它可以简单地使用 action.payload.table 属性来识别要在商店中使用的正确“表”。
我从未在示例、博客文章等中看到过这种模式。相反,大多数示例都有专门用于切换实体上单个字段的操作,例如待办事项上的“已完成”标志。大型应用程序所需的重复次数让我无法使用 Redux,所以我希望这是可行的。
例如:
function entityReducer(state, action) {
//Action payload includes the entity "type" or "table" name
switch(action.type) {
case 'CREATE_ENTITY': {
...
}
case 'UPDATE_ENTITY': {
...
}
...
}
}
最佳答案
是的,这是完全可行的。实际上,我的生产应用程序中有类似的东西,我根据需要在操作中传递 itemType
、itemID
和可能的 newItemAttributes
字段。也就是说,我也使用 Redux-ORM作为处理这些 reducer 中更新的抽象层。我写了a couple posts about using Redux-ORM在我的博客上。
您可能还对 Structuring Reducers 感兴趣Redux 文档中的部分,讨论了重用 reducer 逻辑的方法。
关于redux - 对所有 CRUD 操作使用单个 Redux reducer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41010947/