J'utilise react-router-dom 4.0.0-beta.6 dans mon projet. J'ai un code comme suivant:
<Route exact path="/home" component={HomePage}/>
Et je veux obtenir des paramètres de requête dans le HomePage
composant. J'ai trouvé location.search
param, qui ressemble à ceci ?key=value
:, donc il n'est pas analysé.
Quelle est la bonne façon d'obtenir les paramètres de requête avec react-router v4?
La réponse donnée est solide.
Si vous souhaitez utiliser le module qs au lieu de la chaîne de requête (leur popularité est à peu près égale), voici la syntaxe:
L' option ignoreQueryPrefix consiste à ignorer le point d'interrogation principal.
la source
La réponse acceptée fonctionne bien, mais si vous ne souhaitez pas installer de package supplémentaire, vous pouvez utiliser ceci:
Donné
http://www.google.co.in/?key=value
reviendra
value
la source
Une autre approche utile pourrait être d'utiliser le prêt à l'emploi
URLSearchParams
comme celui-ci;let { search } = useLocation(); const query = new URLSearchParams(search); const paramField = query.get('field'); const paramValue = query.get('value');
Propre, lisible et ne nécessite pas de module. Plus d'informations ci-dessous;
la source
Je faisais des recherches sur les paramètres pour React Router v4, et ils ne l'ont pas utilisé pour la v4, pas comme React Router v2 / 3. Je vais laisser une autre fonction - peut-être que quelqu'un la trouvera utile. Vous n'avez besoin que d'es6 ou de javascript brut.
En outre, cette fonction peut être améliorée
la source
Hein?
la source
Je viens de faire cela, donc je n'ai pas besoin de modifier toute la structure du code (où vous utilisez la requête du magasin de routeur redux) si vous mettez à jour pour réagir au routeur v4 ou supérieur à partir d'une version inférieure.
https://github.com/saltas888/react-router-query-middleware
la source
Très facile
utilisez juste un crochet
useParams()
Exemple:
Routeur :
Dans votre composant :
la source
Sans besoin d'aucun paquet:
Ensuite, vous pouvez accéder aux paramètres associés avec
params.id
la source
this.props.match.params
contient des paramètres de chemin, cette question concerne les paramètres de requête.