Je veux déclarer un chemin avec un paramètre de chemin facultatif, donc quand je l'ajoute à la page pour faire quelque chose de plus (par exemple remplir des données):
http: // localhost / app / path / to / page <= rendre la page http: // localhost / app / path / vers / page / pathParam <= rendre la page avec quelques données selon pathParam
Dans mon routeur React, j'ai les chemins suivants, afin de prendre en charge les deux options (il s'agit d'un exemple simplifié):
<Router history={history}>
<Route path="/path" component={IndexPage}>
<Route path="to/page" component={MyPage}/>
<Route path="to/page/:pathParam" component={MyPage}/>
</Route>
</Router>
Ma question est, pouvons-nous le déclarer dans un seul itinéraire? Si j'ajoute uniquement la deuxième ligne, l'itinéraire sans le paramètre n'est pas trouvé.
EDIT # 1:
La solution mentionnée ici à propos de la syntaxe suivante n'a pas fonctionné pour moi, est-ce une bonne? Existe-t-il dans la documentation?
<Route path="/product/:productName/?:urlID?" handler={SomeHandler} />
Ma version de react-router est: 1.0.3
/route(/:category/(:article)
Pour tous les utilisateurs de React Router v4 arrivant ici après une recherche, les paramètres facultatifs dans a
<Route>
sont indiqués par un?
suffixe.Voici la documentation pertinente:
https://reacttraining.com/react-router/web/api/Route/path-string
https://www.npmjs.com/package/path-to-regexp#optional
Exemple simple d'une section paginée d'un site accessible avec ou sans numéro de page.
la source
<Match pattern />
c'est maintenant à<Route path />
nouveau, mais le suffixe de point d'interrogation reste l'approche maintenant pour gérer les paramètres facultatifs.players
,players/123
,players/123/edit
,players?unseen=true
. Le paramètre facultatif?unseen
ne fonctionne pas pour moi. bien que j'aie essayé toutes les corrections de cette discussion. Pourriez-vous s'il vous plaît aider avec la chaîne de chemin d'accès appropriée, qui gérera cela? Merci d'avance!example.com/search?query=test
essayez d'utiliser le modèle suivant/:search(search)
.Syntaxe de travail pour plusieurs paramètres facultatifs:
Maintenant, l'URL peut être:
la source
pour react-router V5 et supérieur, utilisez la syntaxe ci-dessous pour plusieurs chemins
la source