我在这个网址上:

/path1/path2

然后:
<Link to="path2/path3" />

使用此代码,地址栏中的地址将更改为:
/path1/path2/path3

似乎有效:它已到达最后一个/,并为此添加了新路径。但是,实际上,尽管它更改了地址栏中的网址,但不会进行导航。

看起来必须给链接提供绝对URL?

最佳答案

在react-router v4中支持相对路径。 history库“像浏览器一样”解析相对路径,以便

<Link to="two" />

或一个
history.push({ pathname: '..', search: 'foo=bar' });

网址site/path/one处将重定向到site.com/path/twosite.com/three?foo=bar

但是NavLink不适用于相对路径名,因为它不能解析它自己的相对路径(这很简单)。但是,为此有一些社区软件包,但我尚未对其进行测试。

或者,这就是我的工作,您可以从父路由(或从上下文match)获取一个router.route.match对象,并使用它在NavLink中构建相对的to:
<NavLink to={`${match.url}/three`} />

这样,您的组件可以独立于其父路由运行。

关于url - react 路由器是否支持相对链接?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36312453/

10-13 01:05