React - Redux根据UI状态调度动作

时间:2017-09-04 07:31:29

标签: javascript web redux react-redux reducers

在我的React组件reducer状态中,我有一个selectedTabIndex属性,指定我的UI中当前处于活动状态的选项卡。

const deviceRankReducer = (state = {
    selectedIndex:1
},action) ={
   //...
}

在我的Redux操作中,我想根据所选的选项卡索引进行AJAX调用。

class MyActions extends ReduxActionsBase {
     sendRequest(){
          if(state.selectedIndex === 0){
             //make call to resource A
          }else{
             //make call to resource B
          }
     }
}

在不做出反模式决策的情况下,与ReduxActionsBase共享信息的最佳做法是什么?

1 个答案:

答案 0 :(得分:2)

我建议使用redux-thunkredux-thunk允许您调度条件和异步操作,并且您可以在操作创建者中访问Redux状态。您案例中的行动创作者将是这样的

function makeRequest() {
  return (dispatch, getState) => {
    const { selectedIndex } = getState();

    if(state.selectedIndex === 0){
      //make call to resource A
    }else{
      //make call to resource B
    }
  };
}