2016-07-05 106 views
16

假設我的應用程序的基本URL是example.com/app我可以設置在基本路線反應路由器

是否有可能設置反應,路由器基本路線等等,而不是寫的所有路由作爲

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

我就可以將它們指定爲

a 
b 
c 

我嘗試了下面的例子,我在docs找到,但它不會工作(頁會顯示不興)。也許是因爲我正在使用[email protected],或者我做錯了什麼。

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

你解決這個問題?如果是,請發佈答案。 – Learner

+0

@Learner nope。我放棄了,開始打完整個路線,實際上發現它更乾淨。 – galki

+0

真的嗎?有沒有簡單的解決方案呢?我搜索並嘗試了一些想法沒有運氣(但後來我是一個新手)。 –

回答

17

與最新react router (v4)您可以輕鬆地做到這一點

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

有沒有辦法用動態路徑字段來做到這一點?像'/ calendar /:/ year /:month /:day/event'這裏可能是'/ calendar/11/4/21/event' – Jeremy

+2

爲什麼不把':year /:month /:day /事件「部分鏈接到=? – galki