替换当前网址,而无需重新加载页面

时间:2019-05-03 14:02:12

标签: reactjs react-router react-router-v4 react-router-dom

使用react 16,react-router 4。

我的域应该是“ https://www.xyz.c”。我有一个定位标记,该标记应重定向到“ https://www.xyz.c/some-path”,而无需重新加载页面。

  1. 我可以使用<NavLink><Link>to="/some-path"来实现它。但是,我需要完整的URL才能在DOM中显示(为什么?恩,在侧面说明中,我正在将itemProp用于要在锚标签中包含完整路径的架构)
  2. 使用<a>props.history标签来实现它,如下所示,导致再次替换为相对网址,即它在网址中成为https://www.xyz.c/https://www.xyz.c/some-path
<a data-url="https://www.xyz.c/some-path" onClick={this.onClick}>Label</a>

onClick = e => {
  e.preventDefault();
  this.props.history.push(urlFromDataSet);
}

对于<Navlink><Link><a> + props.history来说这似乎是不可能的,因为政策是history.replace, or history.push可以用于具有相同来源的网址。我的网址也来自同一网址,但是,我在href中给出了完整路径。

但是,facebook在其标题中实现了相同的功能(通过转到首页检查FB,完全加载,然后单击标题中的个人资料按钮。它不会重新加载页。)

我们该怎么做?

1 个答案:

答案 0 :(得分:1)

您已经一半了,可以使用(?<=) API来获取URL属性的路径名,然后将其推送。

data-url

有关URL API的更多信息:https://developer.mozilla.org/en-US/docs/Web/API/URL