Javascript React路由器未定义路由处理
我注意到路由器中有一种奇怪的行为。 我的路线定义如下:Javascript React路由器未定义路由处理,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我注意到路由器中有一种奇怪的行为。 我的路线定义如下: var routes = ( <Route name='app' path='/' handler={Master}> <DefaultRoute handler={HomePage} /> {/* inject:route */} <Route name='home' handler={HomePage} /> <Route name='issues' hand
var routes = (
<Route name='app' path='/' handler={Master}>
<DefaultRoute handler={HomePage} />
{/* inject:route */}
<Route name='home' handler={HomePage} />
<Route name='issues' handler={IssuesPage} />
<Route name='security' handler={SecurityPage} />
<Route name='contactUs' handler={ContactUsPage} />
<Route name='docs' handler={DocsPage} />
{/* endinject */}
<Redirect from='/' to='/home' />
<NotFoundRoute handler={HomePage}/>
</Route>
);
Router.run(routes, function (Handler) {
React.render(<Handler />, document.body);
});
var路由=(
{/*注入:路由*/}
{/*endinject*/}
);
Router.run(路由、函数(处理程序){
React.render(,document.body);
});
在我们的叉子里
单击LeftNav中的链接会产生预期的结果。
开始吞咽时,从/到/回家的重定向将正常工作。
当我输入类似http://localhost:3000/#/some-未定义的路线
。
正如预期的那样,DefaultRoute处理程序接管,并且主页内容可见。然而,奇怪的URL仍然存在。我所期望的是,任何未定义的路由都会重定向到预定义的“一网打尽”。例如,我想要http://localhost:3000/#/some-未定义的路由
自动重定向到http://localhost:3000/#/home
——不仅仅是显示内容
我们正在尝试使用mixin和transitiono()
来实现所需的效果,但我仍然想知道是否有人知道处理这个问题的“正确”方法。我还想知道我看到的是否是预期的行为。如果我错过了什么,我希望得到启发。干杯
更新
来自react路由器的taurose:
你试过了吗
当回应时
有类似问题的其他人可能会得到帮助,那就是要意识到,您还必须为每个子路线提供重定向
显然,这种设置旨在允许更详细的路线控制和处理404之类的东西
起初,我们怀疑可能是这样,但我不明白splat(from=“*”
)是如何工作的。
也许这会对其他人有用。
干杯