0

У меня есть URL-адрес, как показано ниже, с различными значениями запроса.Как получить значения строки запроса URL-адреса в ответном маршрутизаторе с помощью Redux

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

Я работаю над изоморфным применением с использованием redux, реагирую. Итак, я запускаю действие, и могу ли я знать, как я могу получить эти значения строки запроса в файле действий reducex?

export function getProductData(params) { 

    debug('Action Requested:' + params); 

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

Потому что в действии я запускаю вызов API, и мне нужен этот идентификатор из значения querystring.

+0

Если Вам нужно использовать ответ в действии, то отправка в Ajax обратного вызова не обещают в действии. Но я не знаю, это то, что вы хотите сделать. –

+0

Это изоморфное приложение, использующее этот https://github.com/bananaoomarang/isomorphic-redux/tree/tutorial – kobe

+0

. Мое вопрос в том, как получить доступ к значениям querystring? если URL-адрес похож на localhost: 3000/product/1234, он работает, как мы кодируем в маршрутизаторе, например/product /: productid – kobe

ответ

0

Параметры из URL в соответствии с вашими маршрутов распространяются на компоненты с помощью props.params , так что если у вас есть маршруты как

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

вы можете получить доступ к ProductID из Product компонента с помощью реквизита и передать его в действии:

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

где props.params содержит все параметры, которые определяют в маршруте. в нашем случае значение productid будет в props.params.productid.

+0

также являются частью запроса? если у вас есть только/продукт /, а URL-адрес - как/product /? id = 1234 – kobe

+1

Этот ответ не затрагивает вопрос. Не упоминает использование строки запроса вообще. –

2

Если вы используете React-маршрутизатор, идти вперед и получить доступ к ним через props.location.query

Будет ли в конечном итоге выглядит что-то вроде:

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

 Смежные вопросы

  • Нет связанных вопросов^_^