Ich möchte einen Pfad mit einem optionalen Pfadparameter deklarieren. Wenn ich ihn hinzufüge, wird die Seite hinzugefügt, um etwas Besonderes zu tun (z. B. einige Daten zu füllen):
http: // localhost / app / path / to / page <= rendere die Seite http: // localhost / app / path / to / page / pathParam <= rendere die Seite mit einigen Daten gemäß pathParam
In meinem Reaktionsrouter habe ich die folgenden Pfade, um die beiden Optionen zu unterstützen (dies ist ein vereinfachtes Beispiel):
<Router history={history}>
<Route path="/path" component={IndexPage}>
<Route path="to/page" component={MyPage}/>
<Route path="to/page/:pathParam" component={MyPage}/>
</Route>
</Router>
Meine Frage ist, können wir es auf einer Route deklarieren ? Wenn ich nur die zweite Zeile hinzufüge, wird die Route ohne den Parameter nicht gefunden.
EDIT # 1:
Die hier erwähnte Lösung für die folgende Syntax hat bei mir nicht funktioniert. Ist sie richtig? Existiert es in der Dokumentation?
<Route path="/product/:productName/?:urlID?" handler={SomeHandler} />
Meine React-Router-Version ist: 1.0.3
/route(/:category/(:article)
Für alle React Router v4-Benutzer, die nach einer Suche hier ankommen, werden optionale Parameter in a
<Route>
mit einem?
Suffix gekennzeichnet.Hier ist die relevante Dokumentation:
https://reacttraining.com/react-router/web/api/Route/path-string
https://www.npmjs.com/package/path-to-regexp#optional
Einfaches Beispiel für einen paginierten Abschnitt einer Site, auf den mit oder ohne Seitenzahl zugegriffen werden kann.
quelle
<Match pattern />
ist es jetzt<Route path />
wieder so, aber das Fragezeichen-Suffix bleibt jetzt der Ansatz für die Behandlung optionaler Parameter.players
,players/123
,players/123/edit
,players?unseen=true
. Der optionale Parameter?unseen
funktioniert bei mir nicht. obwohl ich alle Korrekturen aus dieser Diskussion ausprobiert habe. Könnten Sie bitte mit der richtigen Pfadzeichenfolge helfen, die dies handhabt? Danke im Voraus!example.com/search?query=test
versuchen Sie, das nächste Muster zu verwenden/:search(search)
.Arbeitssyntax für mehrere optionale Parameter:
Jetzt kann URL sein:
quelle
Für React-Router V5 und höher verwenden Sie die folgende Syntax für mehrere Pfade
quelle