2016-09-19 32 views
0

Ich versuche ein Einladungssystem zu implementieren. Ein Benutzer wird eine E-Mail mit einer Einladung Link erhalten:React Router - URL lesen

http://foo.com/accept?invitation=XXXXX&orgName=House%20of%20Grue 

Grundsätzlich, ich brauche die orgName aus der URL zu ziehen, so kann ich es als eine Variable auf der Webseite, wo sie ihre Registrierung abzuschließen und ich brauche, um leite sie auf die richtige Seite foo.com/invite.

für Meine Route ist:

const routes = <Route component={App}> 
    <Route path="/invite" component={Invite} /> 
</Route>; 

Muss ich etwas anderes in meine Routen tun für, wenn sie den Link von ihrer E-Mail klicken?

Ich lese, dass this.props.location.Pathname mir die URL bekommen und dann kann ich es von dort aufteilen. Ist das der richtige Weg?

Antwort

2

this.props.location.query gibt Ihnen ein Objekt, dessen Schlüssel/Wert-Paare die Abfrageparameter sind.

Für Ihr Beispiel würde this.props.location.query Sie mit;

{ 
    invitation: 'XXXXXX', 
    orgName: 'House of Grue' 
} 
+0

Super! Vielen Dank! Ich habe auch meinen Routenpfad geändert, um "/ accept" statt "/ invite" zu sein. Alles nach dem "?" wurde von React Router erfasst. Super praktisch. Danke noch einmal! – user2465134