有个项目里有两个模块数据结构一样,所以我想通过一个reducer管理两个state,可是action执行时要如何分辨是要操作哪个state,要如何写?
有个项目里有两个模块数据结构一样,所以我想通过一个reducer管理两个state,可是action执行时要如何分辨是要操作哪个state,要如何写?
既然是两个state,他们在store里的位置必然不一样,所以你可以通过传入的state和store.getState().xxxx比较是否相等知道是哪个。
但怎么说这听上去都不像一个好设计。
redux里边为什么会有两个state,我记得什么地方写过,整个应用维护成一个树形state。根据不同的动作触发action,调用reducer来创建新的state。说能同时维护两个state的,你们是怎想的?
既然两个模块用到的数据结构和操作方法是一模一样的,那么就写一个通用的reducer就行, 由它做处理。两个模块只需要拿到相应的数据和操作,通过容器组件connect,mapStateToProps, mapDispatchToProps做通信
不好意思,改一下大神的代码。
const initialState={
model:data1,
detail:data1
}
export funtion reducer(state= initialState, action) {
switch(action.type) {
case 'CHANGE':
return {
...state.model,
model: action.model
}
case 'MOVE':
return {
...state.detail,
detail: action.detail
}
default:
return state
}
}
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
3 回答843 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
你试试更改type类型
至于要做什么操作看你自己了