2016-05-26 3 views
0

Reagieren Verwendung mit in einem Projekt React-Router und frage mich, ob es möglich ist, die Möglichkeiten für param Namen zu begrenzen, etwa so:Kann die Liste der Parameter bei Verwendung von React Router begrenzt werden?

www.mydomain.com/books/:id 

und damit ‚Fänger im Roggen‘ und ‚Wer die Nachtigall stört To‘ wird so durchlaufen, wie:

www.mydomain.com/books/catcher-in-the-rye 
www.mydomain.com/books/to-kill-a-mocking-bird 

ich nur sagen will, dass eine bestimmte Gruppe von Büchern anstelle von verwendet werden kann: id (nur so kann jemand gibt Sie nicht in www.mydomain.com/books/was auch immer-sie-wollen und eine leere React-Komponente haben render).

Ich habe derzeit eine '*' Route, die alles fängt, was nicht erwähnt wird, aber weil Params dynamisch generiert werden basierend auf was auch immer passiert ist, das wird in diesem Fall nicht helfen.

Ist das möglich? Vielen Dank.

Antwort

1

Sie müssen diese Logik in der Komponente behandeln. Je nachdem, ob es sich um eine bereits montierte Komponente oder nicht, müssen Sie die Logik in der entsprechenden Funktion (componentDidMount, componentWillReceiveProps)

if(!(this.props.params.id in myAcceptableParameters)){ 
    redirect to a 404 here 
} 
+0

ausgezeichnet, genau setzen, was ich suchte. Vielen Dank! – hidace

+0

Ja! froh, dass ich helfen konnte! –

Verwandte Themen