Não consigo encontrar como atualizar os parâmetros de consulta com react-router sem usar <Link/>
. hashHistory.push(url)
não parece registrar parâmetros de consulta e não parece que você pode passar um objeto de consulta ou qualquer coisa como um segundo argumento.
Como você altera o url de /shop/Clothes/dresses
para /shop/Clothes/dresses?color=blue
no react-router sem usar <Link>
?
E uma onChange
função é realmente a única maneira de ouvir as alterações da consulta? Por que as alterações de consulta não são detectadas e reagidas automaticamente da mesma forma que as alterações de parâmetros são?
reactjs
react-router
Claireablani
fonte
fonte
Respostas:
Dentro do
push
método dehashHistory
, você pode especificar seus parâmetros de consulta. Por exemplo,ou
Você pode verificar este repositório para exemplos adicionais sobre como usar
history
fonte
router.push({ pathname: '/path', state: { color: 'blue', size: 10 }, });
Exemplo usando o pacote react-router v4, redux-thunk e react-router-redux (5.0.0-alpha.6).
Quando o usuário usa o recurso de pesquisa, quero que ele envie o link da url da mesma consulta para um colega.
fonte
react-router-redux
está obsoleto<Redirect>
tag, link para a página de documentoswithReducer
HOC, o que lhe dará ohistory
suporte. E então você pode correrhistory.push({ search: querystring }
.react-router-redux
, você pode usar oconnected-react-router
que não está obsoleto.A resposta de John está correta. Quando estou lidando com parâmetros, também preciso de
URLSearchParams
interface:Você também pode precisar envolver seu componente com um
withRouter
HOC, por exemplo.export default withRouter(YourComponent);
.fonte
withRouter
é um HOC, não um decoradorfonte
De DimitriDushkin no GitHub :
ou
fonte
Usar o módulo de string de consulta é recomendado quando você precisa de um módulo para analisar sua string de consulta com facilidade.
Aqui, estou redirecionando de volta para meu cliente do servidor Node.js após a autenticação bem-sucedida do Google-Passport, que está redirecionando de volta com token como parâmetro de consulta.
Estou analisando-o com o módulo de string de consulta, salvando-o e atualizando os parâmetros de consulta na url com push de react-router-redux .
fonte
Eu prefiro que você use a função abaixo que é o
ES6
estilo:fonte
Também pode ser escrito desta forma
fonte