Redux:根据交叉减速器状态调度动作

时间:2016-07-09 23:39:08

标签: javascript reactjs redux state reducers

这是我的合并减速器:

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类中,我想知道这是否是根据交叉减速器状态调度动作的最佳实践。

1 个答案:

答案 0 :(得分:1)

你可以在动作创建者中使用redux-thunk

const someAction = elem => (dispatch, getState)=>{

   if(getState().elementSelection.elementType == "placeholder" ){
       dispatch(replaceElement(...)); 
   }else{
       dispatch(addElement(...)); 
   }
}