模块化反应路由器中的路由 [英] Modularize routes in react-router
本文介绍了模块化反应路由器中的路由的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有办法使用 react-router 来模块化你的路由,然后导入它们并组装它们?
Is there a way with react-router to modularise your routes, then just import them and assemble them?
所以不是这样:
<Router>
<Route path="/" component={App}>
<Route path="inbox" component={Inbox}>
<Route path="messages/" component={AllMessages} />
<Route path="messages/:id" component={Message} />
</Route>
<Route path="calendar" component={Calendar}>
<Route path="year" component={Year}>
<Route path="month" component={Month}>
<Route path="week" component={Week}/>
</Route>
</Route>
</Route>
</Route>
</Router>
你可以这样做:
let InboxRoutes = React.createClass({
render: function(){
return (
<Route path="inbox" component={Inbox}>
<Route path="messages/" component={AllMessages} />
<Route path="messages/:id" component={Message} />
</Route>
);
}
});
<Router>
<Route path="/" component={App}>
<InboxRoutes/>
<CalendarRoutes/>
</Route>
</Router>
我得到:警告:位置与任何路线不匹配
推荐答案
一种解决方案是将它们包装在变量中:
One solution is to wrap them in variables:
let InboxRoutes = (
<Route path="inbox" component={Inbox}>
<Route path="messages/" component={AllMessages} />
<Route path="messages/:id" component={Message} />
</Route>
)
let CalendarRoutes = (/* define routes like above */)
let routes = (
<Router>
<Route path="/" component={App}>
{InboxRoutes}
{CalendarRoutes}
</Route>
</Router>
)
render(routes, document.getElementById("app"))
注意:记得要放入父路由的render方法{this.props.children}
这篇关于模块化反应路由器中的路由的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文