2017-09-04 6 views
2

Dans mon état Réducteur de composant Réaction, j'ai une propriété selectedTabIndex, spécifiant quel onglet est actuellement actif dans mon interface utilisateur. Dans mon action Redux, je souhaite effectuer un appel AJAX basé sur l'index de tabulation sélectionné.React - Redux répartit une action en fonction de l'état de l'interface utilisateur

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

Quelle est la meilleure pratique de partager l'information avec le ReduxActionsBase sans prendre une décision anti-modèle?

Répondre

2

Je suggère d'utiliser redux-thunk. redux-thunk vous permet d'envoyer des actions conditionnelles et asynchrones et vous aurez accès à l'état Redux dans votre créateur d'actions. Créateur d'action dans votre cas serait quelque chose comme ça

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

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

Merci pour la réponse, cela peut-il être fait sans ajouter une troisième partie lib? Je travaille dans un environnement donné –

+1

'redux-thunk' est très, très souvent utilisé dans les applications redux et il est difficile de créer des applications redux sans ou sans quelque chose de similaire mais si vous ne pouvez pas installer une librairie tierce Vous devez écrire votre propre «middleware» Redux: http://redux.js.org/docs/advanced/Middleware.html –

+0

redux-thunk est seulement d'environ 12 lignes. Si vous ne pouvez pas l'ajouter en tant que dépendance NPM, il est trivial de le copier-coller dans votre application. – markerikson