Ich versuche derzeit, meinen Kopf um Reagieren Router zu wickeln. Im Moment versuche ich einen Router zu erreichen, die etwa wie folgt aussieht:React Router v4: param im Konflikt mit 404
<BrowserRouter>
<div>
<Switch>
<Route exact path="/" component={App} />
<Route exact path="/:pageName" component={Page} />
<Route component={NotFound}/>
</Switch>
</div>
</BrowserRouter>
Die Idee ist, dass die Seite Komponente, die verwenden: pagename den richtigen Titel und Inhalt zu machen. Wenn jedoch der Seitenname nicht existiert, sollte die Seite notFound (404) gerendert werden.
Im Moment wird die 404-Seite niemals gerendert, da alle URLs mit der Page-Route übereinstimmen.
Was ist der herkömmliche Weg, um zu überprüfen, ob der pageName existiert, und nur die Seite-Komponente in Fällen, in denen es tut? Soll ich das 's' dynamisch einrichten oder sollte die Page-Komponente prüfen und umleiten? Wie sollte ich darüber nachdenken?
Aber wie wollen Sie dann den Zugriff auf: pagename Parameter in der Seite Komponente? –
Sie erhalten immer noch Übereinstimmungseigenschaft, aus der Sie den Pfad oder die URL entnehmen können. Sie müssen möglicherweise ein oder zwei Zeichen daraus entfernen. Oder noch besser, Sie können Page1, Page2, .. usw. Komponenten erstellen, die von Page abgeleitet sind, und diese Komponenten in Routern verwenden. –
Wie kann dieser Unsinn die akzeptierte Antwort sein? – odiumediae