【问题标题】:react-router link to sub routereact-router 链接到子路由
【发布时间】:2015-06-07 19:35:05
【问题描述】:

如何为 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>
);

创建指向 info 或 lang 的链接可以正常工作,但如何链接到 java 或 python?

<Link to="info">Info</Link>

我测试过

<Link to="lang/java">Java</Link>
<Link to="lang java">Java</Link>

但它会导致错误:

不变违规:找不到名为“lang/java”的路由

一个普通的链接可以工作,但我想知道它是如何使用 Link 完成的。

<a href="#lang/python">
   <h2>PYTHON</h2>
</a>

解决方案

链接:

<Link to="java">
  JAVA
</Link>

路线:

<Route name="challenge" handler={ Challenge } >

      <Route name="java" path="java" handler={Challenge}/>

但也许有人在不添加新名称的情况下有解决方案。

【问题讨论】:

    标签: javascript reactjs react-router


    【解决方案1】:

    您可以添加一个名称“java”来链接“java”。

    或者更好的方法是在 lang 路由 path="lang/:language" 中创建一个参数,然后在处理程序中获取语言

    【讨论】:

    • 为我的子路由添加一个名字有帮助。我会考虑 lang/:language,但我想为每个 lang 使用不同的处理程序。谢谢
    • @fuubah 你仍然可以使用 lang/:language 作为路由。您将有一个处理程序来检查this.props.params.language,但会根据该道具呈现不同的组件。
    猜你喜欢
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    • 2019-11-28
    • 2017-09-21
    • 2016-08-20
    • 2023-03-29
    相关资源
    最近更新 更多