这是我的合并减速器:
export const element = (state, action) => {
...
}
export const elementSelection = (state, action) => {
...
}
const holoApp = combineReducers({
elements,
elementSelection
})
elementSelection的状态保存当前所选元素。我希望能够根据当前选定的元素在elementsReducer中调度一个动作。
例如,如果store.getState()。elementSelection.elementType等于"占位符"这个动作将被破坏:
store.dispatch(replaceElement(...));
否则将发送此动作:
store.dispatch(addElement(...));
我唯一的猜测是将这个逻辑放在由商店组成的app类中,我想知道这是否是根据交叉减速器状态调度动作的最佳实践。
答案 0 :(得分:1)
你可以在动作创建者中使用redux-thunk
const someAction = elem => (dispatch, getState)=>{
if(getState().elementSelection.elementType == "placeholder" ){
dispatch(replaceElement(...));
}else{
dispatch(addElement(...));
}
}