2016-07-05 10 views
16

meine App-Basis-URL ist Unter der Annahme example.com/appKann ich eine Basisstrecke in reagieren-Router

Ist es möglich, eine Basisstrecke in reagieren-Router so einstellen, statt alle Routen als

schreiben
/app/a 
/app/b 
/app/c 

kann ich angeben, sie nur als

a 
b 
c 

habe ich versucht, das unten stehende Beispiel, das ich in den docs gefunden, aber es würde nicht nicht funktionieren (Seite würde angezeigt werden Hing). Vielleicht liegt es daran, dass ich [email protected] verwende oder etwas falsch mache.

import { useRouterHistory } from 'react-router' 
import { createHistory } from 'history' 

const history = useRouterHistory(createHistory)({ 
    basename: '/app' 
}) 

const Root = ({store}) => (
    <Provider store={store}> 
     <Router history={history}> 
      <Route path='/' component={App}> 
       ... 
      </Route> 
     </Router> 
    </Provider> 
) 
+1

Haben Sie das Problem lösen? Bitte posten Sie eine Antwort, wenn ja. – Learner

+0

@Learner nein. Ich gab auf und fing an, Routen vollständig zu tippen, und tatsächlich fand es sauberer. – galki

+0

Wirklich? Es gibt keine einfache Lösung dafür? Ich habe einige Ideen ohne Glück gesucht und ausprobiert (aber dann bin ich ein Neuling). –

Antwort

17

Mit der neuesten react router (v4) können Sie ganz einfach das tun

<BrowserRouter basename="/calendar"/> 
<Link to="/today"/> // renders <a href="/calendar/today"> 
+1

Gibt es das trotzdem mit dynamischen Pfadfeldern? Wie '/ calendar /: year /: month /: day/event', wo es beispielsweise'/calendar/11/4/21/event' sein könnte – Jeremy

+2

warum nicht das ': year /: month /: day/event' Teil im Link zu =? – galki

Verwandte Themen