0

다음과 같이 여러 가지 쿼리 문자열 값이있는 URL이 있습니다.Redux로 반응 라우터에서 URL 쿼리 문자열 값에 액세스하는 방법

http://localhost:3000/product/?id=123&name=test 

나는 redux를 사용하는 동형 응용 프로그램에 대해 연구 중입니다. 그래서 나는 행동을 발사하고 내가 어떻게 이러한 쿼리 문자열 값을 redux 액션 파일을 얻을 수 있습니다 알 수 있습니다?

export function getProductData(params) { 

    debug('Action Requested:' + params); 

    return { 
    type: GET_PRODUCT_DATA, 
    promise: request.get(API_URL + params.productId) 
    } 
}; 

실제로 나는 API 호출을 실행 중이므로 해당 ID가 쿼리 문자열 값에서 필요합니다. 당신의 경로에 따라 URL에서

+0

당신은 행동 반응을 사용해야 할 경우 다음 아약스 콜백에 전달하지 행동으로 약속해라. 그러나 이것이 당신이하고 싶은 일인지 나는 모른다. –

+0

이것은 isomorphic 응용 프로그램입니다. https://github.com/bananaoomarang/isomorphic-redux/tree/tutorial – kobe

+0

질문 : 쿼리 문자열 값에 액세스하는 방법은 무엇입니까? URL이 localhost : 3000/product/1234와 같으면/product/: productid – kobe

답변

0

매개 변수는

<Route path="/product/:productid" component={Product} /> 

당신이 소품을 사용하여 Product 구성 요소에서 제품 ID에 액세스하고 행동에 전달할 수있는 것처럼 경로를 가지고 그렇다면 props.params 를 사용하여 구성 요소로 전파된다 :

const Product = (props) => 
    <div> 
    <button onClick={e => props.getProductData(props.params)}>Do Some Action</button> 
    </div>; 

여기서 props.params에는 경로에 정의한 모든 매개 변수가 있습니다. 우리의 경우 productid 값은 props.params.productid이됩니다.

+0

과 같은 라우터에서 코드를 작성하는 것처럼 querystring을 사용하여 일부분을 처리 할 수 ​​있습니까?/product /가 있고 URL이/product /? id = 1234 – kobe

+1

인 경우이 답변은 질문을 해결하지 않습니다. 쿼리 문자열 사용에 대해서는 전혀 언급하지 않았습니다. –

2

것은 당신 반응 라우터를 사용하는 경우, 가서 그들을 통해 액세스 props.location.query

겠습니까 궁극적으로 보이는 같은 :

const Product = (props) => 
    <div> 
    <button onClick={e => props.getProductData(props.location.query)}>Do Some Action</button> 
    </div>;