2016-07-05 32 views
16

Supponendo URL di base della mia app è example.com/appPosso impostare un percorso base in reagire-router

E 'possibile impostare un percorso base in router reagire così invece di scrivere tutte le rotte come

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

posso solo specificarli come

a 
b 
c 

ho provato l'esempio di seguito ho trovato nel docs, ma non avrebbe funzionato (pagina sarebbe non essere visualizzati Hing). Forse è perché sto usando [email protected], o sto facendo qualcosa di sbagliato.

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

avete risolto il problema? Si prega di inviare una risposta se sì. – Learner

+0

@Learner nope. Ho rinunciato e ho iniziato a digitare percorsi completi, e in realtà ho trovato che fosse più pulito. – galki

+0

Davvero? Non c'è una soluzione facile per questo? Ho cercato e provato alcune idee senza fortuna (ma poi sono un principiante). –

risposta

17

Con la nuova react router (v4) si può facilmente fare questo

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

Esiste comunque un modo per farlo con i campi del percorso dinamico? Come '/ calendar /: year /: month /: day/event' dove potrebbe essere, ad esempio,'/calendar/11/4/21/event' – Jeremy

+2

perché non inserire ': year /: month /: day/event' parte nel link a =? – galki