Javascript 反应路由器链接到子路由
如何为lang->python这样的子路由创建链接 我的路线Javascript 反应路由器链接到子路由,javascript,reactjs,react-router,Javascript,Reactjs,React Router,如何为lang->python这样的子路由创建链接 我的路线 var routes = ( <Route name="app" path="/" handler={ App }> <Route name="info" handler={ Info } /> <Route name="home" handler={ Home } /> <Route name="lang" handler={ Lang } >
var routes = (
<Route name="app" path="/" handler={ App }>
<Route name="info" handler={ Info } />
<Route name="home" handler={ Home } />
<Route name="lang" handler={ Lang } >
<Route path="java" handler={Lang}/>
<Route path="python" handler={Lang}/>
</Route>
<DefaultRoute handler={ Home } />
<NotFoundRoute handler={ NotFound } />
</Route>
);
var路由=(
);
创建到info或lang的链接很好,但是如何链接到java或python呢
<Link to="info">Info</Link>
Info
我测试了
<Link to="lang/java">Java</Link>
<Link to="lang java">Java</Link>
Java
JAVA
但它会导致一个错误:
不变冲突:找不到名为“lang/java”的路由
一个正常的链接工作,但我想知道它是如何与链接完成
<a href="#lang/python">
<h2>PYTHON</h2>
</a>
解决方案
链接:
<Link to="java">
JAVA
</Link>
JAVA
路线:
<Route name="challenge" handler={ Challenge } >
<Route name="java" path="java" handler={Challenge}/>
但是可能有人有一个解决方案,而不需要添加新名称。您可以添加一个名称“java”来链接“java”
或者更好的方法是在lang route path=“lang/:language”中创建一个参数,然后在处理程序中取出该语言为我的子例程添加一个名称。我会考虑lang/:language,但我想为每个lang使用不同的处理程序。Thx@fuubah您仍然可以使用
lang/:language
作为路由。您将有一个单独的处理程序来检查this.props.params.language
,但基于该prop呈现不同的组件。