Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应路由器链接到子路由_Javascript_Reactjs_React Router - Fatal编程技术网

Javascript 反应路由器链接到子路由

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 } >

如何为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 } >
      <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呈现不同的组件。