2017-09-04 6 views
2

내 React 구성 요소 감속기 상태에는 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

제 3 자 라이브러리를 추가하지 않고이 작업을 수행 할 수 있습니까? 주어진 환경에서 일하고 있습니다 –

+1

'redux-thunk'는 매우 자주 redux 앱에서 사용되며 그것없이 또는 비슷한 것을 사용하지 않고 redux 앱을 만드는 것은 어렵지만 어떤 타사 라이브러리도 설치할 수 없다면 자신의 Redux'middleware'를 작성해야합니다. http://redux.js.org/docs/advanced/Middleware.html –

+0

redux-thunk는 길이가 약 12 ​​줄입니다. NPM 종속성으로 추가 할 수 없으면 응용 프로그램에 복사하여 붙여 넣기가 쉽습니다. – markerikson