【问题标题】:Reusability of reducers at different levels of app state structure不同应用状态结构级别的reducer的可重用性
【发布时间】:2018-09-17 09:08:55
【问题描述】:
例如,我们有 reducer photos,它通过动作 ADD_PHOTO 和 REMOVE_PHOTO 处理照片数组。如果我们有数组users 和posts,它们都有照片数组的字段。
因此,为了避免代码重复,我将执行以下操作:
- 创建减速器
user = combineReducers(..., photos, ...)
- 创建 actionCreator
updateUser
const updateUser = (id, subAction) => ({
类型:UPDATE_USER,
有效载荷:{
ID,
子动作
}
})
- 创建reducer
users(这里我使用的是Immutable.js)
功能用户(状态=列表(),动作){
开关(动作类型){
//...
案例 UPDATE_USER:
const { id, subAction } = action.payload
const index = state.findIndex(user => user.id == id)
返回状态.updateIn(
[索引,“照片”],
状态 => 照片(状态,子动作)
)
休息
//...
默认:
返回状态
}
}
-
然后我将像这样使用它:
dispatch(updateUser(id, addPhoto(url)))
这是我的问题的正确解决方案吗?
【问题讨论】:
标签:
redux