2017-12-15 5 views
1

So habe ich Schwierigkeiten, diese einfache Situation für mich in React Router 4 arbeiten. Im Grunde habe ich einen Parameter zum Abrufen von Benutzerdaten, die eine Komponente /:user gerendert werden. Ich habe auch ein paar mehr spezifische Ansichten auf dieser Seite, die so ähnlich rendert /:user/:specificView. Um zu verhindern, dass letzterer Match-Benutzer wie specificViews vermisse ich habe versucht, die folgende Regex, aber nichts scheint richtig zu arbeiten.React Router 4 relative Pfade

<div> 
    <Switch> 
     <Route 
     exact 
     path="*/:user/:specificView(coolview|niceview|okview)" 
     render={routerProps => 
      <SpecificViewContainer {...routerProps} {...this.props}/>}/> 
     <Route 
     path="/:user" 
     render={routerProps => 
      <UserPageContainer {...routerProps} {...this.props}/>}/> 
    </Switch> 
</div> 

Die relative Pfade Teil kommt in dem diese beiden Routen oben auf etwas sitzen kann (/coolusers/:user/:specificView, /okusers/butnotbad/:users/:specificView ... etc), so müssen sie die letzten Stücke des Pfadnamens sein.

Ich habe viel gegoogelt und es scheint, das relative Pfadformat :user/:specificView, wo die Öffnung Strich weggelassen wird vorgeschlagen wurde, aber es funktioniert nicht so glaube ich nicht, dass es sie in gemacht: https://github.com/ReactTraining/react-router/issues/5127

Jede möglichen Hilfe sei großartig! Leider bin ich mit der relativen Pfad-Sache fest, weil ich nie weiß, was die serverseitige Betrachtungsroute sein wird.

Antwort

0

Ich habe match.path wurde mit Routen zu ermöglichen, von verschiedenen Eltern Routen verwendet werden:

<Route 
    exact 
    strict 
    path={`${match.path}/create`} 
    component={CreateComponent} />