2016-07-01 5 views
4

작업을 디스패치하고 해당 값을 페이로드에 사용하기 위해 Redux 미들웨어 내부에 URL 매개 변수를 추출하고 싶습니다.React-router를 사용하여 Redux 미들웨어 내 url 매개 변수 가져 오기

+0

에서 PARAMS을받을 수 있나요? –

+0

의견을 보내 주셔서 감사합니다.하지만 제가 물어 본 내용을 정확히 찾고 있습니다. 그럴 수 없다면 다른 방법을 찾아야 할 것입니다. 조금 더 기다리고 있습니다. URL에서 params를 추출 할 수없는 경우 100 %를 입력하면 답변을 수락합니다. – haxpanel

+0

"Redux 미들웨어 내부의 URL 매개 변수"를 추출한다고 생각하지 않습니다. 당신은 저와 같은 것을 본 문서를 가르쳐 주시겠습니까? –

답변

2

은 당신의 목표를 달성하기 위해, 당신은 당신이 당신의 돌아 오는 가게 내부 라우터 상태를 유지할 수 있습니다 redux-router

이 라이브러리를 사용할 수 있습니다. 현재 경로 이름, 쿼리 및 매개 변수를 가져 오는 것은 응용 프로그램 상태의 다른 부분을 선택하는 것처럼 쉽습니다. 그 후

당신은 당신은 내가 무엇을 제안 어떤 기쁨이 있었나요 미들웨어

export const someMiddleware = store => next => action=> { 
    /// get params 
    let params = store.getState().router.params; 

    ///then do what you want........... 
    next(action) 
}; 

MORE INFO

+0

고마워, 나는 또한 이것에 대한 가장 가까운 대답으로 redux-router를 보았다. . 다행히도 내 문제의 정확한 해결책 (여기 : http://stackoverflow.com/questions/38145321/map-a-route-parameter-to-under-a-redux-stores-key)으로 변경하지 않아도되었습니다. 이 라우터. – haxpanel

1

미들웨어 내부에서 params에 액세스 할 필요가 없습니다. 일반적인 패턴은 액션을 전달하려는 구성 요소의 props을 통해 params에 액세스하는 것입니다. 이 같은

뭔가 : 당신이 react-redux Connect method를 사용하여 구성 요소에 dispatch 사용할 수 있도록 할 필요가

this.props.dispatch(yourAction(this.props.params)); 

참고. 예를 들어 :

export default connect()(YourComponent);