Je n'arrive pas à trouver comment mettre à jour les paramètres de requête avec react-router sans utiliser <Link/>
. hashHistory.push(url)
ne semble pas enregistrer les paramètres de requête, et il ne semble pas que vous puissiez passer un objet de requête ou quoi que ce soit comme second argument.
Comment changer l'URL de /shop/Clothes/dresses
à /shop/Clothes/dresses?color=blue
dans react-router sans utiliser <Link>
?
Et une onChange
fonction est-elle vraiment le seul moyen d'écouter les changements de requête? Pourquoi les changements de requête ne sont-ils pas automatiquement détectés et réagis à la façon dont les changements de paramètres sont?
reactjs
react-router
claireablani
la source
la source
Réponses:
Dans la
push
méthode dehashHistory
, vous pouvez spécifier vos paramètres de requête. Par exemple,ou
Vous pouvez consulter ce référentiel pour des exemples supplémentaires sur l'utilisation
history
la source
router.push({ pathname: '/path', state: { color: 'blue', size: 10 }, });
Exemple d'utilisation des packages react-router v4, redux-thunk et react-router-redux (5.0.0-alpha.6).
Lorsque l'utilisateur utilise la fonction de recherche, je veux qu'il puisse envoyer un lien URL pour la même requête à un collègue.
la source
react-router-redux
est obsolète<Redirect>
tag, lien vers la page de documentationwithReducer
HOC qui vous donnera l'history
accessoire. Et puis vous pouvez courirhistory.push({ search: querystring }
.react-router-redux
, vous pouvez utiliserconnected-react-router
ce qui n'est pas obsolète.La réponse de John est correcte. Lorsque je traite des paramètres, j'ai également besoin d'une
URLSearchParams
interface:Vous devrez peut-être également envelopper votre composant avec un
withRouter
HOC, par exemple.export default withRouter(YourComponent);
.la source
withRouter
est un HOC, pas un décorateurla source
De DimitriDushkin sur GitHub :
ou
la source
L'utilisation du module de chaîne de requête est recommandée lorsque vous avez besoin d'un module pour analyser facilement votre chaîne de requête.
Ici, je redirige vers mon client depuis le serveur Node.js après une authentification réussie de Google-Passport, qui redirige avec le jeton comme paramètre de requête.
Je l'analyse avec le module de chaîne de requête, je l'enregistre et je mets à jour les paramètres de requête dans l'URL avec le push de react-router-redux .
la source
Je préfère que vous utilisiez ci-dessous la fonction qui est le
ES6
style:la source
Il peut également être écrit de cette façon
la source