2016-04-15 8 views
0

sagen, dass ich diesen Weg Konfiguration haben:Bestimmen locationKey von Pfad mit reagieren-Router

<Router> 
    <Route path="/" component={App}> 
    <Route path="about" component={About} /> 
    <Route path="inbox" component={Inbox}> 
     <Route path="messages/:id" component={Message} /> 
    </Route> 
    </Route> 
</Router> 

Und sagen, dass die aktuelle URL lautet:/Posteingang/Nachrichten/6

Lassen Sie uns sagen, dass die locationKeys für pased in Jede Komponente ist wie folgt:

/ = "loc1" (as accessed in App component as this.props.location.key) 
/inbox = "loc2" 
/messages/:id = "loc3" 

Gibt es sowieso ich kann fragen, react-router, mir den Standortschlüssel für eine bestimmte Route Pfad? Zum Beispiel möchte ich "messages /: id" übergeben und "loc3" zurückbekommen.

Alternativ kann ich einen Verweis auf die aktuell auf diesem Pfad gerenderte Komponente erhalten? I.e. Wenn ich "messages /: id" übergebe, bekomme ich die Instanz von Message zurück, die gerade Message ID 6 anzeigt?

Antwort

1

Wenn Sie zu /messages/123 gehen und dann zu /inbox und dann zu /messages/123, ist der Schlüssel für den zweiten Besuch der Nachricht anders, so, nein.

Der Schlüssel ist in der Regel nicht die relevante Sache, Sie wollen location.state.

Um die Komponenten zu bekommen, nun, Sie sind die Komponente, so this und this.props.children.

+0

Aber ich interessiere mich nur für die aktuelle locationKey –

+0

Und sagen, ich bin nicht die Komponente, eher eine tief verschachtelte Kindkomponente. Und sagen, dass ich den aktuellen locationKey for/inbox ... –

+0

ermitteln möchte Ich verwende den locationKey, um UI-Status in meinem Redux-Speicher persistent zu halten ... Sollte ich stattdessen location.state verwenden? –

Verwandte Themen