2016-07-05 73 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