Estou usando o react-router-dom 4.0.0-beta.6 no meu projeto. Eu tenho um código como o seguinte:
<Route exact path="/home" component={HomePage}/>
E eu quero obter parâmetros de consulta no HomePage
componente. Encontrei o location.search
param, que se parece com isto ?key=value
:, então não foi analisado.
Qual é a maneira certa de obter parâmetros de consulta com o react-router v4?
A resposta dada é sólida.
Se você quiser usar o módulo qs em vez da string de consulta (eles são quase iguais em popularidade), aqui está a sintaxe:
A opção ignoreQueryPrefix é ignorar o ponto de interrogação inicial.
fonte
A resposta aceita funciona bem, mas se você não quiser instalar um pacote adicional, você pode usar este:
Dado
http://www.google.co.in/?key=value
retornará
value
fonte
Outra abordagem útil poderia ser usar o padrão
URLSearchParams
assim;let { search } = useLocation(); const query = new URLSearchParams(search); const paramField = query.get('field'); const paramValue = query.get('value');
Limpo, legível e não requer módulo. Mais informações abaixo;
fonte
Eu estava pesquisando sobre parâmetros para o roteador react v4, e eles não o usaram para v4, não como o react router v2 / 3. Vou deixar outra função - talvez alguém a considere útil. Você só precisa de es6 ou javascript simples.
Além disso, esta função pode ser melhorada
fonte
Eh?
fonte
Acabei de fazer isso para não precisar alterar toda a estrutura do código (onde você usa a consulta da loja do roteador redux) se você atualizar para reagir ao roteador v4 ou superior de uma versão anterior.
https://github.com/saltas888/react-router-query-middleware
fonte
Muito fácil
apenas use o gancho
useParams()
Exemplo:
Roteador :
Em seus componentes :
fonte
Sem necessidade de nenhum pacote:
Então você pode alcançar os parâmetros relacionados com
params.id
fonte
this.props.match.params
contém parâmetros de caminho, esta questão é sobre parâmetros de consulta.