2017-09-04 15 views
2

私のリアクションコンポーネントレデューサー状態では、selectedTabIndexプロパティがあり、現在どのタブがUIでアクティブであるかを指定します。React - Reduxは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と情報を共有するベストプラクティスは何ですか?

答えて

2

redux-thunkを使用することをおすすめします。 redux-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 
    } 
    }; 
} 
+0

ようなものになるだろう、返信用のおかげで、これは、サードパーティ製のlibが追加することなく行うことができますか?私は与えられた環境の中で働いています –

+1

'redux-thunk'は非常に頻繁にreduxアプリケーションで使用されています。それがなくても、何か似ていないのにreduxアプリケーションを作成するのは難しいですが、あなた自身のRedux 'ミドルウェア'を書く必要があります:http://redux.js.org/docs/advanced/Middleware.html –

+0

redux-thunkは約12行だけです。 NPM依存関係として追加できない場合は、アプリケーションにコピー・ペーストするのは簡単です。 – markerikson

関連する問題